Displacement deformation and rendering
 
 
 

Maya Muscle provides displacement options for more advanced deformation and effects. Displacement nodes can be connected to Muscle deformers for a point deformation adjustment. Displace nodes provide sliding or offset effects as the node approaches the surface of the mesh. This is similar to sliding with capsules or muscles, but is based on an image map and is faster than true sliding weights.

Alternatively, the same nodes can be connected to a special cMuscleDisplace-capable Maya shader or mental ray shader network. This can give a higher-quality displacement and sliding effect at render time.

Advanced topics with cMuscleDisplace

The cMuscleDisplace feature gives you a fast way to obtain Sliding effects. When used as a shader, you not only get sliding that does not calculate until render time, but you can also get more detailed Displacement/Sliding than you get with just topology, since more detail is created. For example, a simple white square with some blurry falloff as a texture map can be used to quickly create sliding hip bones, or clavicle effects.

A good use for this is something like a rib cage. You can paint one or more maps simulating a rib cage texture, and apply this as a displacement map. The cMuscleDisplace node is parented or constrained to the proper joints/bones in your character rig, then the shader is applied to the model. In this way, as the skin mesh moves on the character’s body, the displacement effects appear to slide. As the cMuscleDisplace node approaches or moves away from the mesh, the amount of sliding increases or decreases.

Other possible ideas include things like an Adam’s apple/neck texture. You can rig a joint that is aim constrained from the base of the neck to the front of your model’s chin. This joint could have a cylindrical cMuscleDisplace node parented to it, with a detailed neck texture. As the neck moves and the joint/aim constraint is adjusted, you get very detailed sliding effects on the skin using a shader.

It is important to note that you can ‘chain’ multiple cMuscleShaders together. Each shader has an inDisplacement attribute. You can connect the displacement attribute from each node to the inDisplacement of the next one, or to other standard Maya displacement nodes. Then you can connect the last one into the final shading group.

In addition, you can connect the shader nodes to other utilities. For example, you can create a blendColors node that uses the displacement value as the blender. This changes the color of the surface as the displacement/sliding increases near the surface. (This works best when the Amplitude is set to 1.0, due to the order in which color is calculated.)

In some cases, you want to connect only the Displacement effect as created by one node, not the entire chain. In these cases you can use the displacementLocal attribute on the shader. This returns only the displacement from the current cMuscleDisplace node. The displacementLocalNormalized is the same thing, but with the value normalized from 0 to 1 even if the Amplitude is larger than 1.

Finally, if you set up a shading network, you can also connect the same cMuscleDisplace nodes to the Muscle deformer. Using this approach, you can visualize the displacement by turning on the Enable Displace attribute on the deformer. When rendering, you can turn off Enable Displace, and use only the resulting shaders to obtain the final effect.

Related topics