Renderman User Attributes

   2256   0   1
User Avatar
Member
13 posts
Joined: July 2005
Offline
I apologise if this is a simple question, but I can't find it in the docs…

How do I go about adding renderman user attributes to point instanced geometry ?

I want to jitter the HSV values of a bunch of point instanced objects, using a cellnoise call seeded with a houdini point attribute called “jitterseed”, now at the moment I'm writing to the ri_surface attribute with my surface call with $jitterseed in the relevant location, this is somewhat non optimal as it's a pain in the jacksie to edit and is quite slow to cook, it also means repeating the surface call for every instanced point (this is a lot of points, and the entire surface call is identical bar the jitterseed).

In the RIB Stream I want to insert the line;

Attribute “user” “float JitterSeed”

and obviously have $jitterseed evaluate to whatever the point attribute is for that particular point, it's rather similar to say setting the displacementbound per instance to the value of a point attribute.

I don't know enough about Houdini attribute handling to be able to do this, so if anyone can point me in the right direction, that would be most appreciated.

Edit: On a related note, if I assign my surface shader in the SHOP to the geometry that's being rendered as point instanced (i.e. the placement object, not the object that's actually being rendered at each point), houdini repeats the rman surface call for each instance, even though it's the same call, how would I shift this call further up the stack so it was essentially applied to everything in the scene unless overridden by another surface call - much in the same way you can put a surface statement into a RIBBox in Maya called “world” and have it applied to all objects in the scene unless they have their own surfaces ?
  • Quick Links