Fix RenderEngine API docs
Correct access to passes, D1779 by @levon. Also use is_preview attr and use register/unregister functions.
This commit is contained in:
@@ -9,8 +9,8 @@ import bpy
|
|||||||
class CustomRenderEngine(bpy.types.RenderEngine):
|
class CustomRenderEngine(bpy.types.RenderEngine):
|
||||||
# These three members are used by blender to set up the
|
# These three members are used by blender to set up the
|
||||||
# RenderEngine; define its internal name, visible name and capabilities.
|
# RenderEngine; define its internal name, visible name and capabilities.
|
||||||
bl_idname = 'custom_renderer'
|
bl_idname = "custom_renderer"
|
||||||
bl_label = 'Flat Color Renderer'
|
bl_label = "Flat Color Renderer"
|
||||||
bl_use_preview = True
|
bl_use_preview = True
|
||||||
|
|
||||||
# This is the only method called by blender, in this example
|
# This is the only method called by blender, in this example
|
||||||
@@ -21,7 +21,7 @@ class CustomRenderEngine(bpy.types.RenderEngine):
|
|||||||
self.size_x = int(scene.render.resolution_x * scale)
|
self.size_x = int(scene.render.resolution_x * scale)
|
||||||
self.size_y = int(scene.render.resolution_y * scale)
|
self.size_y = int(scene.render.resolution_y * scale)
|
||||||
|
|
||||||
if scene.name == 'preview':
|
if self.is_preview:
|
||||||
self.render_preview(scene)
|
self.render_preview(scene)
|
||||||
else:
|
else:
|
||||||
self.render_scene(scene)
|
self.render_scene(scene)
|
||||||
@@ -36,7 +36,7 @@ class CustomRenderEngine(bpy.types.RenderEngine):
|
|||||||
|
|
||||||
# Here we write the pixel values to the RenderResult
|
# Here we write the pixel values to the RenderResult
|
||||||
result = self.begin_result(0, 0, self.size_x, self.size_y)
|
result = self.begin_result(0, 0, self.size_x, self.size_y)
|
||||||
layer = result.layers[0]
|
layer = result.layers[0].passes["Combined"]
|
||||||
layer.rect = green_rect
|
layer.rect = green_rect
|
||||||
self.end_result(result)
|
self.end_result(result)
|
||||||
|
|
||||||
@@ -50,21 +50,37 @@ class CustomRenderEngine(bpy.types.RenderEngine):
|
|||||||
|
|
||||||
# Here we write the pixel values to the RenderResult
|
# Here we write the pixel values to the RenderResult
|
||||||
result = self.begin_result(0, 0, self.size_x, self.size_y)
|
result = self.begin_result(0, 0, self.size_x, self.size_y)
|
||||||
layer = result.layers[0]
|
layer = result.layers[0].passes["Combined"]
|
||||||
layer.rect = blue_rect
|
layer.rect = blue_rect
|
||||||
self.end_result(result)
|
self.end_result(result)
|
||||||
|
|
||||||
# Register the RenderEngine
|
|
||||||
bpy.utils.register_class(CustomRenderEngine)
|
|
||||||
|
|
||||||
# RenderEngines also need to tell UI Panels that they are compatible
|
def register():
|
||||||
# Otherwise most of the UI will be empty when the engine is selected.
|
# Register the RenderEngine
|
||||||
# In this example, we need to see the main render image button and
|
bpy.utils.register_class(CustomRenderEngine)
|
||||||
# the material preview panel.
|
|
||||||
from bl_ui import properties_render
|
|
||||||
properties_render.RENDER_PT_render.COMPAT_ENGINES.add('custom_renderer')
|
|
||||||
del properties_render
|
|
||||||
|
|
||||||
from bl_ui import properties_material
|
# RenderEngines also need to tell UI Panels that they are compatible
|
||||||
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.add('custom_renderer')
|
# Otherwise most of the UI will be empty when the engine is selected.
|
||||||
del properties_material
|
# In this example, we need to see the main render image button and
|
||||||
|
# the material preview panel.
|
||||||
|
from bl_ui import (
|
||||||
|
properties_render,
|
||||||
|
properties_material,
|
||||||
|
)
|
||||||
|
properties_render.RENDER_PT_render.COMPAT_ENGINES.add(CustomRenderEngine.bl_idname)
|
||||||
|
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.add(CustomRenderEngine.bl_idname)
|
||||||
|
|
||||||
|
|
||||||
|
def unregister():
|
||||||
|
bpy.utils.unregister_class(CustomRenderEngine)
|
||||||
|
|
||||||
|
from bl_ui import (
|
||||||
|
properties_render,
|
||||||
|
properties_material,
|
||||||
|
)
|
||||||
|
properties_render.RENDER_PT_render.COMPAT_ENGINES.remove(CustomRenderEngine.bl_idname)
|
||||||
|
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.remove(CustomRenderEngine.bl_idname)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
register()
|
||||||
|
Reference in New Issue
Block a user