Community
Arnold General Rendering Forum
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Adding shaders to the IPR for Arnold in Blender

5 ANTWORTEN 5
GELÖST
Antworten
Nachricht 1 von 6
Anonymous
669 Aufrufe, 5 Antworten

Adding shaders to the IPR for Arnold in Blender

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)),  
}))
Beschriftungen (4)
5 ANTWORTEN 5
Nachricht 2 von 6
Stephen.Blair
als Antwort auf: Anonymous

You need to create a shader node, and then set (link?) polymesh.shader



// Stephen Blair
// Arnold Renderer Support
Nachricht 3 von 6
Anonymous
als Antwort auf: Anonymous

@Stephen Blair Like this?

'shader':('POINTER', (arnold.AI_TYPE_POINTER, shader))
Nachricht 4 von 6
Anonymous
als Antwort auf: Anonymous

shader.append(('lambert', {  
  'name': ('STRING', mat.name),  
  'Kd': ('FLOAT', (mat.diffuse_intensity)),  
  'Kd_color': ('RGB', (arnold.AI_TYPE_RGB, *mat.diffuse_color))  
}))
Nachricht 5 von 6
Anonymous
als Antwort auf: Anonymous

And you’d append that shader data to the shader array with the above code? ^

Nachricht 6 von 6
Anonymous
als Antwort auf: Anonymous

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.

In Foren veröffentlichen  

Autodesk Design & Make Report