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 方法更新渲染帧率等统计信息,并打印一些渲染结果。