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)), }))
Solved! Go to Solution.
Solved by tfurrebo. Go to Solution.
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)) }))
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), }))