question

Tyler Furreboe avatar image
Tyler Furreboe asked ·

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)),  
}))
rendershadersshadernodes
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Tyler Furreboe avatar image
Tyler Furreboe answered ·

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),
    }))
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

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

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Tyler Furreboe avatar image
Tyler Furreboe answered ·

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

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Tyler Furreboe avatar image
Tyler Furreboe answered ·
shader.append(('lambert', {  
  'name': ('STRING', mat.name),  
  'Kd': ('FLOAT', (mat.diffuse_intensity)),  
  'Kd_color': ('RGB', (arnold.AI_TYPE_RGB, *mat.diffuse_color))  
}))
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Tyler Furreboe avatar image
Tyler Furreboe answered ·

@Stephen Blair Like this?

'shader':('POINTER', (arnold.AI_TYPE_POINTER, shader))
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.