def set_render_outlines(scene: bpy.types.Scene, line_thickness: float) -> None: """set up a scene for rendering outlines using freestyle""" scene.use_nodes = True scene.render.use_freestyle = True scene.render.line_thickness = line_thickness scene.view_layers['View Layer'].freestyle_settings.as_render_pass = True blender.add_link(scene, (scene.node_tree.nodes['Render Layers'], 'Freestyle'), (scene.node_tree.nodes['Composite'], 'Image'))
def build_scene_composition(scene: bpy.types.Scene) -> None: scene.use_nodes = True utils.clean_nodes(scene.node_tree.nodes) render_layer_node = scene.node_tree.nodes.new(type="CompositorNodeRLayers") vignette_node = utils.create_vignette_node(scene.node_tree) vignette_node.inputs["Amount"].default_value = 0.70 lens_distortion_node = scene.node_tree.nodes.new( type="CompositorNodeLensdist") lens_distortion_node.inputs["Distort"].default_value = -0.050 lens_distortion_node.inputs["Dispersion"].default_value = 0.080 color_correction_node = scene.node_tree.nodes.new( type="CompositorNodeColorCorrection") color_correction_node.master_saturation = 1.10 color_correction_node.master_gain = 1.40 glare_node = scene.node_tree.nodes.new(type="CompositorNodeGlare") glare_node.glare_type = 'GHOSTS' glare_node.iterations = 2 glare_node.quality = 'HIGH' composite_node = scene.node_tree.nodes.new(type="CompositorNodeComposite") scene.node_tree.links.new(render_layer_node.outputs['Image'], vignette_node.inputs['Image']) scene.node_tree.links.new(vignette_node.outputs['Image'], lens_distortion_node.inputs['Image']) scene.node_tree.links.new(lens_distortion_node.outputs['Image'], color_correction_node.inputs['Image']) scene.node_tree.links.new(color_correction_node.outputs['Image'], glare_node.inputs['Image']) scene.node_tree.links.new(glare_node.outputs['Image'], composite_node.inputs['Image']) utils.arrange_nodes(scene.node_tree)
def set_render_settings(scene: bpy.types.Scene): scene.render.resolution_x = 256 scene.render.resolution_y = 256 scene.render.film_transparent = True scene.render.image_settings.file_format = 'PNG' scene.render.image_settings.color_mode = 'RGBA' scene.render.engine = 'CYCLES' scene.cycles.samples = 10 scene.cycles.use_square_samples = False scene.cycles.use_denoising = True try: scene.cycles.denoiser = 'OPENIMAGEDENOISE' except: pass scene.use_nodes = False scene.view_settings.exposure = -3.7 scene.view_settings.view_transform = 'Filmic' scene.view_settings.look = 'Medium High Contrast' scene.world = get_world()
def build_scene_composition(scene: bpy.types.Scene, vignette: float = 0.20, dispersion: float = 0.050, gain: float = 1.10, saturation: float = 1.10) -> None: scene.use_nodes = True clean_nodes(scene.node_tree.nodes) render_layer_node = scene.node_tree.nodes.new(type="CompositorNodeRLayers") vignette_node = create_vignette_node(scene.node_tree) vignette_node.inputs["Amount"].default_value = vignette lens_distortion_node = scene.node_tree.nodes.new(type="CompositorNodeLensdist") lens_distortion_node.inputs["Distort"].default_value = -dispersion * 0.40 lens_distortion_node.inputs["Dispersion"].default_value = dispersion color_correction_node = scene.node_tree.nodes.new(type="CompositorNodeColorCorrection") color_correction_node.master_saturation = saturation color_correction_node.master_gain = gain split_tone_node = create_split_tone_node(scene.node_tree) glare_node = scene.node_tree.nodes.new(type="CompositorNodeGlare") glare_node.glare_type = 'FOG_GLOW' glare_node.quality = 'HIGH' composite_node = scene.node_tree.nodes.new(type="CompositorNodeComposite") scene.node_tree.links.new(render_layer_node.outputs['Image'], vignette_node.inputs['Image']) scene.node_tree.links.new(vignette_node.outputs['Image'], lens_distortion_node.inputs['Image']) scene.node_tree.links.new(lens_distortion_node.outputs['Image'], color_correction_node.inputs['Image']) scene.node_tree.links.new(color_correction_node.outputs['Image'], split_tone_node.inputs['Image']) scene.node_tree.links.new(split_tone_node.outputs['Image'], glare_node.inputs['Image']) scene.node_tree.links.new(glare_node.outputs['Image'], composite_node.inputs['Image']) arrange_nodes(scene.node_tree)