Fix mixing multiple cycles shaders in one material

This commit is contained in:
Moritz Brückner 2021-05-27 22:41:27 +02:00
parent 138386f02a
commit 7057ec4ba6
2 changed files with 12 additions and 0 deletions

View file

@ -204,6 +204,8 @@ def parse_shader(node: bpy.types.Node, socket: bpy.types.NodeSocket) -> Tuple[st
'BSDF_VELVET': nodes_shader.parse_bsdfvelvet,
}
state.reset_outs()
if node.type in node_parser_funcs:
node_parser_funcs[node.type](node, socket, state)

View file

@ -64,6 +64,16 @@ class ParserState:
self.out_opacity: floatstr = '1.0'
self.out_emission: floatstr = '0.0'
def reset_outs(self):
"""Reset the shader output values to their default values."""
self.out_basecol = 'vec3(0.8)'
self.out_roughness = '0.0'
self.out_metallic = '0.0'
self.out_occlusion = '1.0'
self.out_specular = '1.0'
self.out_opacity = '1.0'
self.out_emission = '0.0'
def get_outs(self) -> Tuple[vec3str, floatstr, floatstr, floatstr, floatstr, floatstr, floatstr]:
"""Return the shader output values as a tuple."""
return (self.out_basecol, self.out_roughness, self.out_metallic, self.out_occlusion, self.out_specular,