Community
Trying to get an IPR working in blender, I'm able to get the polymesh to show up, how would I go about adding the shaders? Here's what I have so far:
nodes.append(('polymesh', {
'name': ('STRING', "O::" + ob.name)
'matrix': ('MATRIX', numpy.reshape(ob.matrix_world.transposed(), -1)),
'vlist': ('ARRAY', (arnold.AI_TYPE_VECTOR, vlist)),
'nsides': ('ARRAY', (arnold.AI_TYPE_UINT, nsides)),
'vidxs': ('ARRAY', (arnold.AI_TYPE_UINT, vidxs)),
}))
Gelöst! Gehe zur Lösung
You need to create a shader node, and then set (link?) polymesh.shader
@Stephen Blair Like this?
'shader':('POINTER', (arnold.AI_TYPE_POINTER, shader))
shader.append(('lambert', {
'name': ('STRING', mat.name),
'Kd': ('FLOAT', (mat.diffuse_intensity)),
'Kd_color': ('RGB', (arnold.AI_TYPE_RGB, *mat.diffuse_color))
}))
And you’d append that shader data to the shader array with the above code? ^
Figured it out, not perfect though:
index = index_containing_substring(nodes, ob.name)
nodes.append(('polymesh', {
'name': ('STRING', "O::" + ob.name),
'matrix': ('MATRIX', numpy.reshape(ob.matrix_world.transposed(), -1)),
'vlist': ('ARRAY', (arnold.AI_TYPE_VECTOR, vlist)),
'nsides': ('ARRAY', (arnold.AI_TYPE_UINT, nsides)),
'vidxs': ('ARRAY', (arnold.AI_TYPE_UINT, vidxs)),
'shader':('NODE', (nodes[index])),
#'smoothing': ('BOOL', True),
}))
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.