Just wondering if you have thought about binding shader parameters to geometry like you can with primitive variables in RenderMan. Specifically - if you are going to do something like this - it would be good to have a better approach than RenderMan. The two areas that always cause issues for me:
- working out if it exists at all. In RenderMan eg for a rest position variable (eg Pref) you have to have the variable available to be filled in, but it may not be on a primitive. It is quite hard to determine if it is the default value, or if it has been assigned by the primitive. I think Houdini VEX does have a shadeop to tell you this.
- primitive variable space. RenderMan tries to be too clever by doing an implicit object-> current transformation. Often this is not what you want. This should either have a flag on the geometry definition to say what space it is in, or leave it alone and leave it up to the shader writer.
I think it is really important to have this functionality in place to make shader writers lives easier!