通过Blender python渲染和保存图像

时间:2013-02-20 14:55:00

标签: python render save blender

我试图在blender中通过python脚本渲染和保存多个图像。我知道如何通过Blender GUI渲染和保存图像,但我想通过我的脚本完成所有操作,因为我使用的是一组嵌套循环,需要保存多个图像。我能够渲染图像,我想在输出成功的情况下保存图像。但我不知道它保存到哪里,当我尝试编辑文件路径时,它给出了上下文错误的错误。

3 个答案:

答案 0 :(得分:30)

以下是我在Blender 2.63中所做的事情:

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

这是在创建VR全景(围绕它的一系列对象图片)。我以这个算法结束了:

  1. 创建或加载要拍摄
  2. 的对象
  3. 缩放它并添加一些漂亮的灯光(以便从您想要的方向看到对象);通过渲染场景来检查光照(使用 F12 键)
  4. 创建一个Empty节点并将其位置和轮换设置为标识(位置:0, 0, 0,轮换:0, 0, 0
  5. 将相机视图设置为起始位置(再次使用渲染检查)
  6. 打开交互式Python shell( Shift + F4
  7. 粘贴&运行脚本
  8. 您最终会在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)