Node Trix

Posté par Megeon le 26/2/2016 17:26:48
Hello a tous, je présente mon premier add on code sur blender ( non ne vous affolez pas y a rien d'extraordinaire )

c'est un node (un groupe plus précisément) je l'ai batisé le Trix ça permet un mix de 3 shaders (je suis sur que l'on doit déjà le trouver sur le net)
'''
Node Trix
un node qui permet un mix de 3 shaders

By Megeon
'''


import bpy

#create a group

trix_group = bpy.data.node_groups.new('Trix', 'ShaderNodeTree')

# create group inputs
group_inputs = trix_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
trix_group.inputs.new('NodeSocketShader','shader_1')
trix_group.inputs.new('NodeSocketShader','shader_2')
trix_group.inputs.new('NodeSocketShader','shader_3')
trix_group.inputs.new('NodeSocketFloat','fac_1_2')
trix_group.inputs.new('NodeSocketFloat','fac_2_3')
trix_group.inputs.new('NodeSocketFloat','fac_1_3')

# create group outputs
group_outputs = trix_group.nodes.new('NodeGroupOutput')
group_outputs.location = (800,0)
trix_group.outputs.new('NodeSocketShader','shader')

# create three MixShader nodes
node_mix1 = trix_group.nodes.new('ShaderNodeMixShader')
node_mix1.location = (200,0)

node_mix2 = trix_group.nodes.new('ShaderNodeMixShader')
node_mix2.location = (200,-200)

node_mix3 = trix_group.nodes.new('ShaderNodeMixShader')
node_mix3.location = (200,-400)

#create Two AddShader Nodes

node_add1 = trix_group.nodes.new('ShaderNodeAddShader')
node_add1.location = (400,0)

node_add2 = trix_group.nodes.new('ShaderNodeAddShader')
node_add2.location = (400,-200)


# Link nodes together

trix_group.links.new(node_add1.inputs[0], node_mix1.outputs[0])
trix_group.links.new(node_add1.inputs[1], node_mix2.outputs[0])

trix_group.links.new(node_add2.inputs[0], node_add1.outputs[0])
trix_group.links.new(node_add2.inputs[1], node_mix3.outputs[0])

# link inputs
trix_group.links.new(group_inputs.outputs['shader_1'], node_mix1.inputs[1])
trix_group.links.new(group_inputs.outputs['shader_1'], node_mix2.inputs[1])

trix_group.links.new(group_inputs.outputs['shader_2'], node_mix1.inputs[2])
trix_group.links.new(group_inputs.outputs['shader_2'], node_mix3.inputs[1])

trix_group.links.new(group_inputs.outputs['shader_3'], node_mix2.inputs[2])
trix_group.links.new(group_inputs.outputs['shader_3'], node_mix3.inputs[2])

trix_group.links.new(group_inputs.outputs['fac_1_2'], node_mix1.inputs[0])
trix_group.links.new(group_inputs.outputs['fac_1_3'], node_mix2.inputs[0])
trix_group.links.new(group_inputs.outputs['fac_2_3'], node_mix3.inputs[0])

#link output
trix_group.links.new(node_add2.outputs[0], group_outputs.inputs['shader'])



ça ma surtout permit d’appréhendé l'API de Blender

peux être que quelqu'un en trouvera l'utilité, perso je m'en sert pour faire une texture militaire(camouflage)

si vous pouvez partager les solution que vous trouverez avec ça !

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=2&topic_id=45684&post_id=550297