2013-02-20 24 views
18

Blender'da python betiği ile birden fazla görüntü oluşturmaya ve kaydetmeye çalışıyorum. Görüntünün Blender GUI ile nasıl oluşturulacağını ve kaydedileceğini biliyorum, ancak bir dizi iç içe döngüyü kullanıyorum ve birden fazla görüntü kaydetmem gerektiğinden, bunu tüm komut dosyalarım aracılığıyla yapmak istiyorum. Görüntüyü oluşturabiliyorum ve görüntüyü çıktıyı başarılı olarak kaydetmeyi düşünüyorum. Ancak, nerede kaydedildiğini ve dosya yolunu düzenlemeye çalıştığımda, bağlamın hatalı olmasının bana verdiği hatadan emin değilim. BöyleGörüntüyü Blender python ile oluşturma ve kaydetme

cevap

7

şey: Burada

import bpy 

bpy.context.scene.render.filepath = 'pathToOutputImage' 
bpy.context.scene.render.resolution_x = w #perhaps set resolution in code 
bpy.context.scene.render.resolution_y = h 
bpy.ops.render.render() 
+5

'render()' işlevi için parametre olarak 'write_still = True' fonksiyonu blender, benim durumumda bir görüntü oluşturmadı. – tobltobs

20

i Blender 2.63 yaptıklarınız:

bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg' 
bpy.ops.render.render(write_still=True) 

Ne ben etrafında bir nesne çekim (bir dizi VR panorama yaratıyor yapıyordu. Ve ben bu algoritma ile sona erdi:

  1. oluşturabilir veya
  2. ölçek bunu bir çekim ve bazı güzel aydınlatma gerçekleştirmek için gidiyoruz bir nesneyi yüklemek; sahneyi render ile aydınlatma kontrol
  3. bir Empty düğümü oluşturmak ve kimliğine konumunu ve dönüşünü ayarlamak (F12 anahtar kullanın) (konum: 0, 0, 0, rotasyon: 0, 0, 0)
  4. başlangıç ​​pozisyonuna kameralı görünümünü ayarlamak (yeniden işleme ile kontrol edin, tekrar)
  5. Komut dosyasını çalıştırın!

Sen /home/user/VR dizininde sizin nesnenin etrafında step_count çekim ile bitirmek zorundadır.

cam = bpy.data.objects['Camera'] 
origin = bpy.data.objects['Empty'] 

step_count = 32 

for step in range(0, step_count): 
    origin.rotation_euler[2] = radians(step * (360.0/step_count)) 

    bpy.data.scenes["Scene"].render.filepath = '/home/user/VR/vr_shot_%d.jpg' % step 
    bpy.ops.render.render(write_still=True) 
+0

'write_still = True' 'in neden bu kadar önemli olmasının gerekmediğini merak ederek, onsuz kaydedilmiş bir resminiz yok. –

+1

@SibbsGambling Bunun nedeni, Blender'ın önizleme görüntülerini (F12'ye bastığınızda olduğu gibi) görüntülemenin bir seçeneğidir. Yani aslında render'i sabit bir görüntü olarak kaydetmek isteğe bağlıdır. –

İlgili konular