The renderman/arnold/vray procedurals transfer all the agent metadata to the meshes (all the metadata names have Each render engine procedural takes care of transferring the agent metadatas onto the render meshes, this process adds an "atoms_" as prefix during rendering). It is possible to use these metadata inside shaders. This can give you more control on agents variation during rendering.For exampleprefix 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 and with an addMetadata module, you can create a metadata called myColor. Use . 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 a different value on some random values on your agents.
Create a simple renderman pxrsurface shader and as diffuse color connect a pxrattribute node to the diffuse color. Set the "variable name" attribute of the pxrattribute node to "atoms_myColor" and set the type to vector3vector.
Now you can export this material using the Renderman material exporter from the Atoms menu . And you can prepare an agent variation that uses this shader. You can render and you will see something like in (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 Arnold using the aiUserDataVector/Int/Float/... node or in vray V-Ray using a VrayUserColor node as well.