Low-poly Section

Assets from Daz Studio are usually awesome, but they often have a high polygon count. This can give problems with performance. Often it is possible to reduce the polygon count with little effect on the final renders. This is where the Low-poly Versions section at the bottom of the Setup panel comes in.The low-poly mesh can have several uses, e.g. to speed up posing speed. The idea is to hide all the original meshes while posing for maximum speed, and then hide the low-poly mesh and unhide the original meshes when rendering.
  • Print Statistics. For each selected mesh, print the number of vertices, edges, and faces in the terminal window.
  • Apply Morphs. Quick Low-polys can only be made of meshes without shapekeys, so this is convenient to quickly be able to apply all shapekeys.
  • Make Quick Low-poly. Make a quick low-poly versions of all selected meshes. The low-poly mesh will be called mesh name + "_Lodn", where n is the number of iterations..
  • Make Faithful Low-poly. Make a faithful low-poly versions of all selected meshes. The low-poly mesh will be called mesh name + "_Lodn", where n is the number of iterations..
  • Split n-gons. A faithful low-poly typically contains n-gons, which may be undesirable. This button converts all n-gons to triangles.
  • Quadify Triangles. Attempt to join adjascent triangles into quadrangles.
  • Add Push: Add a Push shapekey to the selected meshes. This shapekey move all vertices outwards 1 cm in the normal direction.
  • Make Deflection: Make a deflection mesh.

Print Statistics

The Print Statistics button displays the number of vertices of all selected meshes in a dialog window. This is useful for deciding which meshes to decimate; it is usually no idea to decimate very small meshes.

 Here is the dialog when Aiko and all clothes were selected. 

The same information is also printed in the terminal window.

Quick Low-poly

The DAZ Importer uses two different algorithms to decimate meshes. The Quick Low-poly utilizes Blender's decimate modifier, whereas the Faithful Low-poly uses an algorithm written entirely in Python. The main drawback with the quick low-poly is that UV seams are not always preserved, which can lead to ugly streaks in renders.

 

When we press the button we must specify the number of iterations. The Quick Low-poly uses Blender's Decimate modifier, set to Unsubdivide, and this number of iterations in that. The default is 2. An even number of iterations generally works better.

The original Aiko weighs in at

Verts: 16556, Edges: 32882, Faces: 16368

The Make Quick Low-poly button reduces her footprint to

Verts: 5424, Edges: 12723, Faces: 7341

i.e. the number of vertices is reduced to a about third.

However, there are a number of problems, e.g. the white spots in the shoulder and neck areas. The quick low-poly uses Blender's Decimate modifier, which does not respect UV seams. A decimated face can contain vertices in different UV islands, making the middle of the face stretch over random parts of the texture.This is most easily seen in the UV editor.


Moreover, since the quick low-poly applies a modifier, the mesh must not have any shapekeys. This is not such a big problem for Genesis 3 and 8, where facial expressions are implemented with bones, but for Genesis and Genesis 2 this means no face expressions. The Apply Morphs button is duplicated in this section to get rid of any shapekeys before making a quick low-poly.

Faithful Low-poly

To deal with these problems, a second algorithm has been implemented, the faithful low-poly. It is faithful in the sense that UV seams are respected, so there are no faces stretching over unknown parts of the texture. This can be checked in the UV editor. 

  

The footprint of the faithful low-poly is

Verts: 8323, Edges: 15054, Faces: 6773

This is slightly higher than the quick low-poly, but still a nice reduction.



There are still some problems. In the illustration the shoulders become very jagged if we turn the Subsurf modifier off. 

Split n-gons

Another problem is that the algorithm produces n-gons, which sometimes leads to bad results, and may not work if you intend to export the character to some other application. This can be fixed by the Split n-gons button.

After triangulating n-gons the character weighs

Verts: 8323, Edges: 20051, Faces: 11770

The number of  edges and faces has gone up considerably, but I'm not sure that this affects performance, since complicated n-gons have been replaced by simple triangles. The number of vertices stays the same, which is what I think is most important for performance.

Quadify Triangles

This tool converts triangles to quads, using Blender's built-in triangle-to-quad tool. As with the Quick Low-poly, it is not guaranteed to maintain UV islands, but the problem is smaller and may be acceptable for some characters.

Hair

Hair can be particularly problematic for performance. The Aldora hair, which came with some earlier version of Daz Studio, has the impressive footprint

Verts: 123506, Edges: 240687, Faces: 117264

Reducing the weight of a 21,000 verts character makes little sense if we leave her with 123,000 verts worth of hair.

Making a faithful low-poly of the hair reduces the footprint to

Verts: 32574, Edges: 61862, Faces: 29370

without any notable reduction of quality.

A second iteration of the Faithful Low-poly button reduces the hair further

Verts: 9281, Edges: 16743, Faces: 7544

Compared to the original 123,000 verts, the footprint has gone down with more than a factor of ten!

We now start to see some bald spots on the head, but it should not be too difficult to fix them in edit mode.

If we instead made a quick low-poly in the last step, the footprint became

Verts: 10081, Edges: 20047, Faces: 10048

The baldness problem is perhaps a little less pronounced, but some manual editing is still needed.

Another way to reduce the poly-count for some hair types is provided by the Select Random Strands button in the Hair section. Here is another hair with an impressive footprint:

Verts: 114074, Edges: 167685, Faces: 55553

Not all of the strands are really needed, but it would difficult to select a suitable set manually.

We don't want the skull cap to be selected, so we hide it (select one vertex on the skull, use ctrl-L to select connected vertices, and H to hide).

Select Random Strands to make the selection, and then press X to delete the vertices. The Keep Fraction slider in the pop-up dialog was set to the default 50% in this case. There is some tendency to baldness in edit mode, but that is because the skull cap is still hidden. The render looks quite ok but the footprint has been reduced to

Verts: 56116, Edges: 82748, Faces: 27574

Add Push

Replacing meshes with low-poly versions can sometimes give problems. Since the low-poly faces are larger the skin can poke through. The Add Push offers a quick fix for this. It adds a shapekey named Push which moves the vertices along the vertex normals.

Since the problem is more pronounced with tight-fitting clothes, Aiko has changed clothes to the basic wear, and we have made a quick low-poly with eight iterations of the top. There is clearly a problem with skin poking through.

Use the Add Push tool to add a Push shapekey which moves vertices in the normal direction.

  

Crank up the value a bit. The value 1.0 corresponds to moving the mesh 1.0 cm along the vertex normals, so in this case we pushed the top out 5.9 mm from the body. The problem with skin poking through has been reduced.

Another way to keep the clothes outside the body is the Add Shrinkwrap tool, which was introduced in Daz Importer 1.5.1. It can be found in the Morphs section. Here is a comparison:


Make Deflection

This tool creates a low-poly mesh that fits the character mesh and has the same armature modifier. It can be used e.g. as a collision object for simulations. For Genesis 8, the deflection mesh has 506 vertices, 1512 edges, and 1008 faces.

Select Aiko and press Make Deflection. The option specifies how far the deflection mesh is separated from the character mesh.
Often we only need part of the deflection mesh, e.g. in a hair simulation it may be enough to keep the head and shoulders. In that case we can delete unused parts of the deflection mesh to reduce its size even further.

The creation of the deflection mesh relies on vertex numbers, so if those have been changed, e.g. by merging geografts, there may be problems. However, if you only have added vertices to the original mesh, e.g. by joining the eyelashes, the deflection mesh is created correctly.

There is an option in the Global Settings to create deflection meshes during import, if the duf file contains simulations.