DAZ meshes can be quite heavy and can slow down the viewport. Genesis 9 is worse than older generations, but clothes and especially hair can have a much higher poly-count. Add subdivisions, hair, drivers, etc. and viewport performance could become much worse.
Here are some suggestions for improving viewport performance. The suggestions are discussed in more detail below.
- Use solid view instead of rendered view.
- Turn on simplify and set max viewport subdivisions to zero.
- Disable drivers when when you pose, enable them when you work with morphs. The plugin can easily create hundreds of drivers that take a lot of time to update (Morphs > Disable Drivers).
- Add shapekey mute drivers to disable shapekeys with zero value.
- Put heavy meshes in separate collections that can be excluded during posing. Hair can be especially heavy.
- Put objects that are not in view in separate collections.
- Finalize meshes and armature in the Finishing panel. This removes some data that is needed for adding morphs etc., but improves viewport performance.
- Add a mannequin to block the animation. This a collection of meshes that are bone parented, which performs much better than a mesh with vertex groups.
This post will be updated include other optimization techniques.
Solid view instead of rendered view
This is sort of obvious. Even textured mode is more costly than material mode.Simplify
The Simplify tab contains Blender's native tools for improving viewport speed. Usually we don't need to see subdivisions in the viewport. There is a global setting that limits the number of subdivision levels when DAZ scenes are imported, both the viewport and render levels.Disable drivers
Morphs are implemented in Blender as a complex web of drivers that control bone rotations and locations, mesh shapekeys, and custom properties. A DAZ figure with the standard morphs loaded can easily have many hundreds of drivers, and the evaluation of many drivers takes significant time.Shapekey mute drivers
DAZ figures often have many shapekeys, e.g. for JCMs and FACS morphs. The evaluation of those shapekeys takes time, but it is unnecessary to include zero shapekeys in the process.
The global option "Shapekey Mute Drivers" adds drivers to the shapekey enable channel, muting the shapekey if it is zero (within rounding errors). Muted shapekeys are not included in the evaluation of the final vertex locations which should lead to a performance gain.
When "Optimize JCM Drivers" is enabled some drivers related to JCMs are eliminated.Separate collections for different meshes
Hair and clothes are often heavier than the figure itself, but are not really necessary when posing. We can put such objects into subcollections that are disabled during posing and only enabled again when it is time for rendering.
Here is Aiko with hair and clothes. Hair and clothes have been put into separate collections.Here the hair and clothes collections are disabled. This does not really hamper posing.
Finalize meshes and optimize drivers
The Finishing panel contains some buttons that can improve performance. However, this should be done as a final step when the figure setup is finished.
- Finalize Meshes: Removes internal properties from meshes, needed e.g. to merge geografts.
- Optimize Drivers: Optimize the web of drivers. New morphs can not be loaded afterwards.
The Final Optimizations option in Easy Import tool does the same thing.
Mannequins
A mannequin is a collection of meshes that are parented to the bones of the armature. This improves performance because bone parenting can be evaluated much faster than the influence of multiple vertex groups. Mannequins are useful for blocking out an animation, even if final tweaking with the real mesh may be necessary. The DAZ Importer can create a mannequin for a selected set of meshes.
To create a mannequin, select the meshes and press "Add Mannequin". This tool requires that the Object Tools feature is enabled.The original meshes are put into a subcollection called "Meshes", and the mannequin meshes belong to the new "Mannequin" collection. We can now pose the figure with the mannequin enabled, and switch to the original meshes for final tweaking and rendering