Each render engine procedural takes care of transferring the agent metadatas onto the render meshes, this process adds an 各レンダリングエンジンの手続きは、エージェントメタデータをレンダリングメッシュに転送するように処理します。このプロセスは、すべてのメタデータ名に接頭辞 "atoms_" prefix to all names. You can use these metadatas inside shaders to have better control over your agent variations at render time.
For instance, you can create an agent group with an addMetadata module. In the addMetadata options you set "myColor" as name for your metadata, the type to "vector" and then open the the agent override dialog to set random values on your agents.
Create a simple renderman pxrsurface shader and connect a pxrattribute node to the diffuse color. Set the "variable name" attribute to "atoms_myColor" and the type to vector.
Now you can export this material using the Renderman material exporter from the Atoms menu (or you can set up your variations scene and let the variation builder take care of exporting the materials).
Create an agent group and set the variations on your agents. Once you will render, you will see a render similar to the picture on the right, where the shader color is taken from the myColor metadata.
This can be done also in Arnold using the aiUserDataVectorを追加します。シェーダ内から、これらのメタデータを使用して、レンダリング時にエージェントのバリエーションをより適切に制御することができます。
例えば、AddMetadataモジュールを使用してエージェントグループを作成できます。AddMetadataオプションで、メタデータの名前として「myColor」を設定し、タイプを「Vector」に設定した後、エージェントのOverride Dialogを開いてエージェントにランダムな値を設定します。
バリエーションシーンに戻ります。簡易的なRenderMan Pxrsurfaceシェーダを作成し、PxrattributeノードをDiffuseカラーに接続します。 「Variable name」アトリビュートを「atoms_myColor」に設定し、Vector型に設定します。
こちらのマテリアルをすべてのメッシュに割り当て、Variation Builderを使用してバリエーションを再エクスポートします(必ずターゲットのレンダリングエンジンとしてRenderManを選択してください)。
シミュレーションシーン内で、バリエーションをもう一度インポートして、バリエーションをエージェントに設定します。レンダリングすると、右側の図のように、myColorメタデータからシェーダカラーが取得されるレンダリングが表示されます(AddMetadataモジュールは、引き続きエージェントグループに適用され、上記のように設定されます)。
これは、ArnoldでaiUserDataVector / Int / Float / ... node or in V-Ray using a VrayUserColor node.ノードを使用して、またはV-RayでVrayUserColorノードを使用しても実行できます。