[blender] preview: use Holdout instead of TransparentBSDF for wireframe occlusions

This commit is contained in:
Loïc Vital 2023-06-19 11:25:59 +02:00
parent 05b9ece40f
commit 4d6fe4c3a9

View file

@ -199,15 +199,15 @@ def setupWireframeShading(mesh, color):
# Emission node # Emission node
nodeEmission = material.node_tree.nodes.new(type='ShaderNodeEmission') nodeEmission = material.node_tree.nodes.new(type='ShaderNodeEmission')
nodeEmission.inputs['Color'].default_value = color nodeEmission.inputs['Color'].default_value = color
# Transparent BSDF node # Holdout node
nodeTransparent = material.node_tree.nodes.new(type='ShaderNodeBsdfTransparent') nodeHoldout = material.node_tree.nodes.new(type='ShaderNodeHoldout')
# Max Shader node # Max Shader node
nodeMix = material.node_tree.nodes.new(type='ShaderNodeMixShader') nodeMix = material.node_tree.nodes.new(type='ShaderNodeMixShader')
# Retrieve ouput node # Retrieve ouput node
nodeOutput = material.node_tree.nodes['Material Output'] nodeOutput = material.node_tree.nodes['Material Output']
# Connect nodes # Connect nodes
material.node_tree.links.new(nodeWireframe.outputs['Fac'], nodeMix.inputs['Fac']) material.node_tree.links.new(nodeWireframe.outputs['Fac'], nodeMix.inputs['Fac'])
material.node_tree.links.new(nodeTransparent.outputs['BSDF'], nodeMix.inputs[1]) material.node_tree.links.new(nodeHoldout.outputs['Holdout'], nodeMix.inputs[1])
material.node_tree.links.new(nodeEmission.outputs['Emission'], nodeMix.inputs[2]) material.node_tree.links.new(nodeEmission.outputs['Emission'], nodeMix.inputs[2])
material.node_tree.links.new(nodeMix.outputs['Shader'], nodeOutput.inputs['Surface']) material.node_tree.links.new(nodeMix.outputs['Shader'], nodeOutput.inputs['Surface'])
# Apply material to mesh # Apply material to mesh