Update April 20, 2020:
The latest versions of the export script automatically turns off High Resolution before exporting the vertex data, and then turns it back on. The procedure described below is thus unnecessary.Original post:
As explained in http://diffeomorphic.blogspot.com/p/export-from-daz-studio.html, the Daz importer needs a json file exported from Daz Studio in order to do mesh fitting correctly. The json file contains the vertex coordinates with all morphs applied. The final world space coordinates depend on a combination of shapekeys, poses, and morph transfer to clothes, and it simply turned out to be too difficult to extract this information from the duf files themselves. In contrast, finding the coordinates with a Daz Studio script was quite easy, since the Daz scripting API has a function that accesses the cached geometry directly.
However, Alessandro Padovani discovered a problem with this: the cached geometry depends not only on the morphs but on mesh smoothing as well, see https://bitbucket.org/Diffeomorphic/import-daz/issues/30/major-subdivision-bug. This leads to some issues, e.g. in the teeth and eyes areas. To avoid this issue all characters must be at base resolution when exported from Daz Studio, even if the duf file is saved at high resolution.
The problem can be explained with a subdivided plane consisting of four square faces. In Daz Studio, the mesh looks like this:
Plane in Daz Studio, at subd level = 2 |
Plane in Blender, without and with subsurf modifier |
Plane in Daz Studio, at Subd level = 0 |
To fix this we must set the Resolution Level to Base before exporting the json file. We now have the plane without the undesired smoothing.
Plane in Daz Studio, at base resolution. The subd level is irrelevant. |
Plane in Blender, without and with subsurf modifier |
To summarize: to make meshes look the same in Blender and Daz Studio, save the scene at high resolution but export the json file at base resolution.
A scene often consists of several characters with clothes and hair. To quickly change the resolution of all meshes:
- Select all objects in the Scene tab.
- Select all objects in the Parameters tab.
- Search for resolution in the search box.
- Change the Resolution Level to Base.