forked from bartvdbraak/blender
Quick Smoke: Only generate Fire/Smoke Nodes when actually used, this is a bit faster for the renderer.
This commit is contained in:
parent
42abfe4853
commit
69e41d473c
@ -387,94 +387,96 @@ class QuickSmoke(Operator):
|
|||||||
links.new(node_add_shader_1.outputs["Shader"],
|
links.new(node_add_shader_1.outputs["Shader"],
|
||||||
node_out.inputs["Volume"])
|
node_out.inputs["Volume"])
|
||||||
|
|
||||||
# Smoke
|
if self.style in {'SMOKE', 'BOTH'}:
|
||||||
|
# Smoke
|
||||||
|
|
||||||
# Add shader 2
|
# Add shader 2
|
||||||
node_add_shader_2 = nodes.new(type='ShaderNodeAddShader')
|
node_add_shader_2 = nodes.new(type='ShaderNodeAddShader')
|
||||||
node_add_shader_2.location = grid_location(4, 2)
|
node_add_shader_2.location = grid_location(4, 2)
|
||||||
links.new(node_add_shader_2.outputs["Shader"],
|
links.new(node_add_shader_2.outputs["Shader"],
|
||||||
node_add_shader_1.inputs[0])
|
node_add_shader_1.inputs[0])
|
||||||
|
|
||||||
# Volume scatter
|
# Volume scatter
|
||||||
node_scatter = nodes.new(type='ShaderNodeVolumeScatter')
|
node_scatter = nodes.new(type='ShaderNodeVolumeScatter')
|
||||||
node_scatter.location = grid_location(3, 3)
|
node_scatter.location = grid_location(3, 3)
|
||||||
links.new(node_scatter.outputs["Volume"],
|
links.new(node_scatter.outputs["Volume"],
|
||||||
node_add_shader_2.inputs[0])
|
node_add_shader_2.inputs[0])
|
||||||
|
|
||||||
# Volume absorption
|
# Volume absorption
|
||||||
node_absorption = nodes.new(type='ShaderNodeVolumeAbsorption')
|
node_absorption = nodes.new(type='ShaderNodeVolumeAbsorption')
|
||||||
node_absorption.location = grid_location(3, 2)
|
node_absorption.location = grid_location(3, 2)
|
||||||
links.new(node_absorption.outputs["Volume"],
|
links.new(node_absorption.outputs["Volume"],
|
||||||
node_add_shader_2.inputs[1])
|
node_add_shader_2.inputs[1])
|
||||||
|
|
||||||
# Density Multiplier
|
# Density Multiplier
|
||||||
node_densmult = nodes.new(type='ShaderNodeMath')
|
node_densmult = nodes.new(type='ShaderNodeMath')
|
||||||
node_densmult.location = grid_location(2, 2)
|
node_densmult.location = grid_location(2, 2)
|
||||||
node_densmult.operation = 'MULTIPLY'
|
node_densmult.operation = 'MULTIPLY'
|
||||||
node_densmult.inputs[1].default_value = 5.0
|
node_densmult.inputs[1].default_value = 5.0
|
||||||
links.new(node_densmult.outputs["Value"],
|
links.new(node_densmult.outputs["Value"],
|
||||||
node_scatter.inputs["Density"])
|
node_scatter.inputs["Density"])
|
||||||
links.new(node_densmult.outputs["Value"],
|
links.new(node_densmult.outputs["Value"],
|
||||||
node_absorption.inputs["Density"])
|
node_absorption.inputs["Density"])
|
||||||
|
|
||||||
# Attribute "density"
|
# Attribute "density"
|
||||||
node_attrib_density = nodes.new(type='ShaderNodeAttribute')
|
node_attrib_density = nodes.new(type='ShaderNodeAttribute')
|
||||||
node_attrib_density.attribute_name = "density"
|
node_attrib_density.attribute_name = "density"
|
||||||
node_attrib_density.location = grid_location(1, 2)
|
node_attrib_density.location = grid_location(1, 2)
|
||||||
links.new(node_attrib_density.outputs["Fac"],
|
links.new(node_attrib_density.outputs["Fac"],
|
||||||
node_densmult.inputs[0])
|
node_densmult.inputs[0])
|
||||||
|
|
||||||
# Attribute "color"
|
# Attribute "color"
|
||||||
node_attrib_color = nodes.new(type='ShaderNodeAttribute')
|
node_attrib_color = nodes.new(type='ShaderNodeAttribute')
|
||||||
node_attrib_color.attribute_name = "color"
|
node_attrib_color.attribute_name = "color"
|
||||||
node_attrib_color.location = grid_location(2, 3)
|
node_attrib_color.location = grid_location(2, 3)
|
||||||
links.new(node_attrib_color.outputs["Color"],
|
links.new(node_attrib_color.outputs["Color"],
|
||||||
node_scatter.inputs["Color"])
|
node_scatter.inputs["Color"])
|
||||||
links.new(node_attrib_color.outputs["Color"],
|
links.new(node_attrib_color.outputs["Color"],
|
||||||
node_absorption.inputs["Color"])
|
node_absorption.inputs["Color"])
|
||||||
|
|
||||||
# Fire
|
if self.style in {'FIRE', 'BOTH'}:
|
||||||
|
# Fire
|
||||||
|
|
||||||
# Emission
|
# Emission
|
||||||
node_emission = nodes.new(type='ShaderNodeEmission')
|
node_emission = nodes.new(type='ShaderNodeEmission')
|
||||||
node_emission.inputs["Color"].default_value = (0.8, 0.1, 0.01, 1.0)
|
node_emission.inputs["Color"].default_value = (0.8, 0.1, 0.01, 1.0)
|
||||||
node_emission.location = grid_location(4, 1)
|
node_emission.location = grid_location(4, 1)
|
||||||
links.new(node_emission.outputs["Emission"],
|
links.new(node_emission.outputs["Emission"],
|
||||||
node_add_shader_1.inputs[1])
|
node_add_shader_1.inputs[1])
|
||||||
|
|
||||||
# Flame strength multiplier
|
# Flame strength multiplier
|
||||||
node_flame_strength_mult = nodes.new(type='ShaderNodeMath')
|
node_flame_strength_mult = nodes.new(type='ShaderNodeMath')
|
||||||
node_flame_strength_mult.location = grid_location(3, 1)
|
node_flame_strength_mult.location = grid_location(3, 1)
|
||||||
node_flame_strength_mult.operation = 'MULTIPLY'
|
node_flame_strength_mult.operation = 'MULTIPLY'
|
||||||
node_flame_strength_mult.inputs[1].default_value = 2.5
|
node_flame_strength_mult.inputs[1].default_value = 2.5
|
||||||
links.new(node_flame_strength_mult.outputs["Value"],
|
links.new(node_flame_strength_mult.outputs["Value"],
|
||||||
node_emission.inputs["Strength"])
|
node_emission.inputs["Strength"])
|
||||||
|
|
||||||
# Color ramp Flame
|
# Color ramp Flame
|
||||||
node_flame_ramp = nodes.new(type='ShaderNodeValToRGB')
|
node_flame_ramp = nodes.new(type='ShaderNodeValToRGB')
|
||||||
node_flame_ramp.location = grid_location(1, 1)
|
node_flame_ramp.location = grid_location(1, 1)
|
||||||
ramp = node_flame_ramp.color_ramp
|
ramp = node_flame_ramp.color_ramp
|
||||||
ramp.interpolation = 'EASE'
|
ramp.interpolation = 'EASE'
|
||||||
|
|
||||||
# orange
|
# orange
|
||||||
elem = ramp.elements.new(0.5)
|
elem = ramp.elements.new(0.5)
|
||||||
elem.color = (1.0, 0.128, 0.0, 1.0)
|
elem.color = (1.0, 0.128, 0.0, 1.0)
|
||||||
|
|
||||||
# yellow
|
# yellow
|
||||||
elem = ramp.elements.new(0.9)
|
elem = ramp.elements.new(0.9)
|
||||||
elem.color = (0.9, 0.6, 0.1, 1.0)
|
elem.color = (0.9, 0.6, 0.1, 1.0)
|
||||||
|
|
||||||
links.new(node_flame_ramp.outputs["Color"],
|
links.new(node_flame_ramp.outputs["Color"],
|
||||||
node_emission.inputs["Color"])
|
node_emission.inputs["Color"])
|
||||||
|
|
||||||
# Attribute "flame"
|
# Attribute "flame"
|
||||||
node_attrib_flame = nodes.new(type='ShaderNodeAttribute')
|
node_attrib_flame = nodes.new(type='ShaderNodeAttribute')
|
||||||
node_attrib_flame.attribute_name = "flame"
|
node_attrib_flame.attribute_name = "flame"
|
||||||
node_attrib_flame.location = grid_location(0, 1)
|
node_attrib_flame.location = grid_location(0, 1)
|
||||||
links.new(node_attrib_flame.outputs["Fac"],
|
links.new(node_attrib_flame.outputs["Fac"],
|
||||||
node_flame_ramp.inputs["Fac"])
|
node_flame_ramp.inputs["Fac"])
|
||||||
links.new(node_attrib_flame.outputs["Fac"],
|
links.new(node_attrib_flame.outputs["Fac"],
|
||||||
node_flame_strength_mult.inputs[0])
|
node_flame_strength_mult.inputs[0])
|
||||||
|
|
||||||
# Blender Internal
|
# Blender Internal
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user