我试图在blender中通过python脚本渲染和保存多个图像。我知道如何通过Blender GUI渲染和保存图像,但我想通过我的脚本完成所有操作,因为我使用的是一组嵌套循环,需要保存多个图像。我能够渲染图像,我想在输出成功的情况下保存图像。但我不知道它保存到哪里,当我尝试编辑文件路径时,它给出了上下文错误的错误。
答案 0 :(得分:30)
以下是我在Blender 2.63
中所做的事情:
bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg'
bpy.ops.render.render( write_still=True )
这是在创建VR全景(围绕它的一系列对象图片)。我以这个算法结束了:
Empty
节点并将其位置和轮换设置为标识(位置:0, 0, 0
,轮换:0, 0, 0
) 您最终会在step_count
目录中的对象周围找到许多图片(由/home/user/VR
定义)。
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 )
答案 1 :(得分:9)
类似的东西:
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()
答案 2 :(得分:0)
您将必须执行以下操作。 i
循环后第二行中的for
是文件循环的循环索引。
我已经验证了它可以在控制台中运行,也可以从命令行运行。渲染一个文件后,不要忘记删除对象。 (此处未提供remove命令,因为它不是通用的。如果该对象具有链接,则该命令中将需要一些特定的参数)
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
area.spaces[0].viewport_shade = 'RENDERED'
bpy.context.scene.render.image_settings.file_format='JPEG'
bpy.context.scene.render.filepath = ".pic%0.2d.jpg"%i
bpy.ops.render.render(use_viewport = True, write_still=True)