Primitive Variables (often referred as "primvars") are data attached to the geometry. This is useful when a shader needs to reference custom data from the geometry. There is no need to remap Houdini primvars to RenderMan primvars. All geometry attributes are passed to RenderMan as primvars with specific variation depending on attribute type.
The examples below show the difference between the four Houdini attribute types (point, vertex, uniform, detail) and how they translate to RenderMan primvars. All the Houdini attributes regardless of type are all RenderMan primvars so can be accessed via the PxrPrimvar VOP.
...
point attribute → varying primvar
...
vertex attribute → facevarying primvar
...
primitive attribute → uniform primvar
...
detail attribute → constant primvar
Houdini attributes can also be used to control aspects of rendering such as shading, dicing, displacement, or geometry specific settings by creating primitive variables that are recognized by RenderMan. These can be set via a houdini detail attribute in SOPs or by adding RenderMan spare parameters to the OBJ. If both parameter and attribute are set, the detail attribute will override the OBJ parameter.
...
...
Instance Attributes are data attached to the instance. This useful for varying attributes across instances. Like primvars, instance attributes can also be added via SOP attributes or via OBJ parameters.
...
via SOPs
...
via OBJs
...
user
...
rman
...
Variables(”primvars”と呼ばれる)は、ジオメトリに添付されたデータです。 これは、シェーダがジオメトリのカスタムデータを参照する必要がある場合に便利です。HoudiniのprimvarsをRenderManのprimvarsにリマップする必要はありません。すべてのジオメトリのアトリビュートは、アトリビュートのタイプに応じて特定のバリエーションを持つprimvarsとしてRenderManに渡されます。
以下の例は、4つのHoudiniアトリビュートタイプ(point, vertex, primitives, detail)の違いと、それらがどのようにRenderManプリミティブ変数に変換されるかを示しています。タイプに関係なく、すべてのHoudiniアトリビュートはすべてRenderManプリミティブ変数であり、PxrPrimvar VOPを介してアクセスすることができます。
...
Houdiniのアトリビュートは、RenderManによって認識されるプリミティブ変数を作成することで、シェーディング、ダイシング、ディスプレイスメント、ジオメトリ固有の設定など、レンダリングの側面を制御するためにも使用できます。これらは、SOP内のHoudini詳細アトリビュートを介して、またはRenderManのスペアパラメータをOBJに追加して設定することができます。パラメータとアトリビュートの両方が設定されている場合は、detailアトリビュートがOBJパラメータを上書きします。
...
インスタンスアトリビュートは、インスタンスに付けられたデータです。インスタンス間でアトリビュートを変えるのに便利です。プリミティブ変数と同様に、インスタンスアトリビュートもSOPアトリビュートやOBJパラメータを介して追加することができます。
...