user_data_string into image node

tjvollB4GZV
Participant
Participant

user_data_string into image node

tjvollB4GZV
Participant
Participant

There's a straight forward example of how to use user data to drive shader parameters for C4D. I'm trying to do the same thing in Katana.

1) connect a user_data_string node into an image node's filename parameter.

2) Give the attribute parameter the value "texture"

3) add an attributeSet node after the alembic_in

4) make the attributeName "texture", change attributeType to "string", and set the stringValue to an explicit texture filepath.

Arnold fails to render the image with,

ERROR  |  [texturesys] Invalid image file ""

Am I missing something?

0 Likes
Reply
Accepted solutions (1)
1,001 Views
6 Replies
Replies (6)

Stephen.Blair
Community Manager
Community Manager

You need to get the user data on to the shape node. Off the top of my head, I don't know how to do that in Katana, I'll have to look around.
note: my original answer was wrong, I was thinking of a difference scenario



// Stephen Blair
// Arnold Renderer Support
0 Likes

tjvollB4GZV
Participant
Participant
0 Likes

tjvollB4GZV
Participant
Participant

@Stephen Blair I'm missing a fundamental step since I can't seem to replicate C4D rgb example either. Is there a convention regarding attribute names in Katana? From the Katana docs there's a suggestion that geometry.arbitrary is where user data is stored but I still had no luck. I've attached a simple example of a katana scene where I'm trying to control a shader's base float and base colour using user_data and attributeSet nodes.

user-datakatana.tar.gz

0 Likes

Stephen.Blair
Community Manager
Community Manager
Accepted solution

There's an ArnoldUserData in KtoA for adding user data



// Stephen Blair
// Arnold Renderer Support
0 Likes

tjvollB4GZV
Participant
Participant

So simple. Thank you!

0 Likes

Mike_Farnsworth
Not applicable

Yes, so set the user-data attribute (simplest way is to use the ArnoldUserData node), and then in your shader node (image shader) set the filename to have "...<attr:myAttrName>..." (substitute the name you set in the ArnoldUserData node). Any objects with that user data should have the tag substituted.

0 Likes