bpy.context.engine
是 Blender 上下文中用于访问当前渲染引擎的属性和方法的对象。它直接继承自 bpy.types.RenderEngine
类。
通过 bpy.context.engine
,用户可以使用当前配置的渲染引擎进行各种渲染操作,例如设置渲染参数,启动渲染任务,获取渲染结果等等。
bpy.context.engine.name
当前渲染引擎的名称,字符串类型。
bpy.context.engine.threads
当前渲染引擎所分配的线程数,整数类型。
bpy.context.engine.resolution_x
渲染的水平分辨率,整数类型。
bpy.context.engine.resolution_y
渲染的垂直分辨率,整数类型。
bpy.context.engine.resolution_percentage
渲染的整体分辨率百分比,整数类型。
bpy.context.engine.use_preview
是否开启预览模式,布尔类型。
bpy.context.engine.begin_result(x, y, width, height)
开始渲染,并返回一个渲染结果对象。需要传递四个参数,表示渲染结果的位置和大小。
bpy.context.engine.end_result(result, layer)
结束渲染,并将结果存储到指定的 result
对象中。同时,可以通过 layer
参数指定渲染结果的通道层级。
bpy.context.engine.render(scene, view_layer=None)
执行一次完整的渲染操作。需要指定渲染的场景(scene
),以及渲染的视图层(view_layer
)。如果未指定视图层,则使用当前场景的默认视图层。
bpy.context.engine.update_stats()
更新当前渲染状态的统计信息,例如剩余时间,已渲染帧数等等。
bpy.context.engine.report(type, message)
记录指定类型(type
)和消息(message
)的日志。通常用于记录渲染过程中的错误和警告信息。
以下是基于 bpy.context.engine
的一个简单的渲染脚本:
# 获取当前渲染引擎
engine = bpy.context.engine
# 设置渲染参数
engine.threads = 4
engine.resolution_x = 1920
engine.resolution_y = 1080
engine.resolution_percentage = 100
# 执行渲染
result = engine.begin_result(0, 0, engine.resolution_x, engine.resolution_y)
engine.render(scene)
engine.end_result(result)
# 打印渲染统计信息
engine.update_stats()
print("Render time: {} s".format(engine.stats_time_render))
print("Frame rate: {} fps".format(engine.stats_preview_fps))
以上脚本中,我们首先获取当前渲染引擎,并设置了一些渲染参数。然后,我们调用 begin_result
方法开始渲染,并获取到渲染结果对象 result
。接着,我们调用 render
方法进行一次完整的渲染操作,并通过 end_result
方法将渲染结果存储到 result
对象中。最后,我们调用 update_stats
方法更新渲染帧率等统计信息,并打印一些渲染结果。