Ziva Tet Mesh Optimization

Ziva Tutorials | 

Broad Strokes

Expert Tip: Take advantage of our paintable tet resolution feature to add tets where you need them, rather than making your character uniformly high resolution. Remember, the tet resolution only needs to be high enough to capture the desired deformations. On average, it should be significantly lighter than the embedded surface.


A Ziva Tet Mesh, also known as a tetrahedral mesh, is the lattice-like structure that surrounds a Ziva tissue object. It is comprised of a finite number of simple 3D primitives (tets) that all work together to approximate the volume of the object that they surround. Fundamentally, they define the resolution for any given Ziva Tissue or tissue region.

Unlike other tet mesh solutions, Ziva Tet Meshes are completely decoupled from the original geometric object. This means that you can freely alter the resolution of the tet mesh without impacting any other parts of the system. So, if you had attachments and fibers on your object, you wouldn’t need to delete or alter them to change the object’s resolutions.

How to Change the Tet Mesh Resolution

  1. Create a Ziva Tissue Object (Click here for Ziva Tissue Tutorial)
  2. Go to the ’zTet’ node on the left hand side.
  3. Change the “Tet Size” to alter the size of the tets, thus altering the volume approximation resolution
  4. Smaller tet size = higher resolution | Larger tet size = lower resolution 

How to Optimize the Tet Mesh Resolution

ZIVA VFX also allows you to vary the resolution across the surface of a single object. So, if you needed to increase the resolution at a specific point, say, at the tendinous area of a muscle, while maintaining a lower resolution elsewhere on the muscle, you can simply use the paintbrush tool to indicate where you'd like the varied areas to be and they will change accordingly, in real-time. This is a great way of optimizing your tet count.

  1. Right-click the tet mesh of the object
  2. On the drop down menu that appears, hover on "Paint"
  3. Hover over "zTet" on the Paint submenu
  4. Select "zTet_Weights"
  5. Begin painting
  6. See results immediately

This will cause your object to turn black and your cursor to turn into a white paintbrush. With this, you can begin to select the areas where you'd like the differing tet mesh size to be. As you paint on your object, the tet mesh size will change automatically.

How to Change Overall Tet Resolution:

If you wish to increase the resolution of the entire object, including any varying tet size section, you'll want to use the "Surface Refinement" attribute. The tet count is multiplied by Surface Refinement # found in the zTets Node. If you increase the Surface Refinement # than the number of tets on the object (and therefore in the scene) will increase. 

  1. Go to the 'zTet' Node on left hand side
  2. Go to the "Surface Refinement" property (standard setting = 1)
  3. Increase or decrease the property number
  4. See results immediately
  5. Smaller tet size = higher resolution | Larger tet size = lower resolution 

Keep in mind, the more tetrahedra you have in your system (higher the resolution), the more computational power it will require. You will have richer deformations and improved wave propagation, but the system will be slower.

Seeking faster sim speeds? Consider simulating a lower resolution mesh and embedding the high resolution "hero" mesh. Lower resolution meshes will result in less proxy-points when creating attachments, which will have some impact on your simulation time (especially if your tet mesh is high resolution)
January 4, 2018

I would like to show you a comparison between the Ziva Skin Simulation and the projected mesh. All meshes used were the ones provided along with the Pete files. As you can see in the video there are quite a few details that are lost in translation. On the other hand, though, the wrinkling seems too extreme in the Ziva Sim, and in this regard the more subtle effect in the projected mesh seems more naturalistic.Is this difference in results expected? And do you have any suggestions as to how to close the gap in terms of detailing in the final result?

May 26, 2017

Is it possible to embed a single mesh, such as a character skin, into multiple zTissues, so that it can be influenced by multiple lattices at once? I'm looking into a simplified workflow to add basic (volume-preserving) collisions and jiggle to a skinned character without having to cache simulations and import/export alembics as bones, etc. My basic idea was to have three copies of a character skin...