phrenzy84
From what i gather, the fur sop generates sample hairs, and then a fur procedural and/or a CVEX shop is what gives the fur its shape, count, tip width, root width etc? Am i right about that…. probably not .
The Fur SOP generates hairs from a skin surface and interpolates the shape from a set of guide hairs. The mantra fur procedural performs the same operation as the Fur SOP but runs within mantra and reduces memory requirements by only instancing hairs as needed.
The Fur SOP/procedural can also copy attributes from the skin and guide hairs to the resulting geometry. For example, if you are using a shader that needs some custom attributes like UVs, this would copy them to the new hairs. For separate “tip width” and “root width” values, you would simply create a “width” attribute on the guide hairs that varies from root to tip and tell the Fur SOP to copy it to the output with the “Guide Attributes” parameter. “width” is a special attribute mantra uses when rendering curves.
CVEX shaders can be used to manipulate attributes (and some special properties like vertex position) before they are used by the Fur SOP/procedural. The Fur SOP's help describes all of the special properties. Several of the Fur SOP's examples illustrate how this can be used to manipulate the fur's density and style.
phrenzy84
But one thing i have no idea about is a CVEX shop. Is this a shop written in Vex converted into a shop? because i cant edit/view the code nor the network.
The examples from the Fur SOP's help were all written in VEX. You can view edit/view the code by right clicking on the SHOP, choosing “Type properties…”, and then clicking on the “Code” tab. They were compiled using a command line like “vcc -l myshader.otl myshader.vfl”
phrenzy84
If anything ive said is right then all the power of creating the physical attributes of the fur is in this format (like count, width, etc).
There is a lot of power in the flexiblity of the system: just create some attributes on the skin and/or guide hairs and update the CVEX code to use the attribute values when deciding how to manipulate the vertex positions. Unfortunately, it still requires the user to do some VEX coding.