.. _sec-zHarmonicWarp:
zHarmonicWarp
-------------
This is a warp deformer for internal anatomy such as tissues and fascias. It can also warp
Maya joints and locators that you may be using to Maya-rig your creatures.
This deformer can warp Maya meshes, NURBS surfaces and curves, joints and locators.
This deformer solves a harmonic problem in the domain enclosed by the source cage,
mapping the source cage onto the target cage, and as such maximizes the smoothness of the warp.
The source and target cage meshes must have the same number of vertices and same mesh connectivity.
For more details, see :ref:`sec-zHarmonicWarpDetails`.
This node can be created with the :ref:`sec-zHarmonicWarpCmd` command.
+--------------------------+--------------------------------------------------------------------------------+
| Attribute | Meaning |
| | |
+==========================+================================================================================+
| **envelope** | Interpolates between no effect (0) and full effect (1). Note that |
| | the standard deformer weights can be painted and they multiply the envelope. |
+--------------------------+--------------------------------------------------------------------------------+
| **recompute** | When on, the node automatically recomputes whenever an input changes. |
| | When off, the node does not recompute. Useful if you need to adjust a few |
| | parameters and you don't want the node to recompute after each individual |
| | change. |
+--------------------------+--------------------------------------------------------------------------------+
| **tetSize** | The tet mesh size for the harmonic warp, in scene units. |
| | No tets will be larger than this value. |
+--------------------------+--------------------------------------------------------------------------------+
| **maxResolution** | Interrupts the computation if the smallest tet would divide the object into |
| | more than this many tets per side. For example, if maxResolution=100, then the |
| | tet meshing will abort if the tets will be smaller than 1% of the width of the |
| | object. This does not affect the result (assuming the computation was not |
| | interrupted). This usage is the same as in the :ref:`sec-zTet` node. It exists |
| | to guard against crashing the tet mesher if tetSize is set to a tiny value. |
+--------------------------+--------------------------------------------------------------------------------+
| **surfacePenalty** | Controls the tradeoff between the smoothness of the output, and how precisely |
| | the warp obeys the target cage. This value is given on a log scale, and can be |
| | negative, zero or positive. Smaller values increase the smoothness at the cost |
| | of the warp deviating more from the target cage. |
+--------------------------+--------------------------------------------------------------------------------+
| **showTetMesh** | Turns the display of the tet mesh on/off. |
+--------------------------+--------------------------------------------------------------------------------+