Friday, February 26, 2021

DAZ Importer Version 1.5.1 released

There has been lots of progress since version 1.5.0 of the DAZ Importer was released half a year ago, and it is time for a new stable release. Among the highlights of the new release we mention:

  • Hair improvements, both for fibermesh hair, strand-based hair, and old-fashioned mesh hair.
  • Geometry shell improvements.
  • Faster transfer of morphs between meshes.
  • Improvements to the MHX rig.
  • Improvements to the Rigify interface.
  • Support for FACS introduced in DAZ Studio 4.15.
  • Many bug fixes.

Stable version 1.5.1b can be downloaded from https://www.dropbox.com/s/d087603vz5hmau0/import_daz-v1.5.1b-20210302.zip.

As before, the development version can be downloaded from: https://bitbucket.org/Diffeomorphic/import_daz/downloads/

This is the last version that is compatible with Blender 2.79. Future versions of the DAZ Importer, from version 1.6.0 and forward, will only work with Blender 2.80 and later. Maintaining compatibility with Blender 2.79 has become a major nuisance, and since I suspect that very few people use it these days anyway, this means a lot of work for very little gain. Critical bugfixes can still be done in the version_1_5_1 branch, which can be downloaded from https://bitbucket.org/Diffeomorphic/import_daz/downloads/?tab=branches.

Acknowledgements:

Although the code has been written by myself, this add-on has benefitted greatly from bug reports and suggestions by many people. In particular, I want to thank

Alessandro Padovani, for his expertise in materials. The translation from Iray to Cycles and Eevee is essentially Alessandro's achievement.

engetudouiti, for his suggestions in many areas, especially rigging. 

Xin, for his lucid explanations on coding and the Blender API.

 

Sunday, February 21, 2021

Render Simplification

DAZ character have many materials with many large and detailed textures. Loading all these textures in Blender can cause serious performance problems, because the textures may fill up the available RAM. The situation can be especially critical with Eevee, which can cause the computer to freeze completely. To handle this problem the DAZ Importer has a tool for downsizing textures, cf. previous blog posts here and here. However, this tool is incovenient because it uses Open CV, which is not part of the Blender distribution but most be installed separately. 

Fortunately, Alessandro Padovani pointed out that there is another, simpler way to limit textures size: Blender's built-in Simplification feature.

The Simplification settings are found in the Render Properties context. The important setting is the Texture Limit. Personally I prefer to set it as low as 512.

Simplification turned off. Memory consumption 2019 M, peak 2209 M.

 Here is a render of Aiko with the default settings.

Texture limit 512. Memory consumption 333M, peak 523M.

And here is the same scene with simplification turned on. The difference in quality is hardly visible (at least I don't see any), but the memory consumption has been reduced by 80% or so. Quite nice. The render time is not really affected though.

Textures resized, implification turned off. Memory consumption 377 M, peak 568 M.

For comparison, here is the same scene after textures have been resized. Again there is no discernable loss of quality, and the memory consumption is comparable to the render with original textures and simplification turned on.

 
The Resize Textures tool is found near the top of the Materials sections. In the same section we also have the Update Render Settings button. As was explained here, Blender's default render settings are not sufficient to render DAZ characters correctly. The DAZ Importer updates insufficient render settings when a scene is imported, but the update can also be done manually with this tool.

TIP: When you start Blender, press Update Render Settings and set up Simplification like you want it. Then save your settings as you startup file (File menu > Defaults > Save Startup File).

Unfortunately, simplication does not affect Eevee, only Cycles. But we can limit the texture size in the viewport, and that does affect Eevee. To change the Limit Size, open the Blender Preferences window (Edit menu > Preferences) and to to the Viewport tab.

For a more in-depth explaination, see Alessandro's post.



Wednesday, February 3, 2021

FaceCap Test

 

As mentioned in a previous post, DAZ Studio 4.15 supports FACS. The latest commits of the DAZ Importer also does so, even if not everything works perfectly yet. R. Keoni Garcia pointed out that you can make facial mocap animations with FaceCap (iOS facial capture app for devices with Face ID) and export them as a text file. Get more information about FaceCap at http://www.bannaflak.com/.

So I made a tool which imports FaceCap files and applies them to a DAZ character. Here is the result using the example recording from Bannaflak. Unfortunately, the only recording that I found has a male voice, and DAZ Studio only supports FACS for female characters so far, so that is a bit disturbing. But if you can disregard that, I think the result is pretty cool, at least as a first try.

 
To import FaceCap files, use the Import FaceCap button at the top of the FACS Units panel.It opens a file selector with some options:
  • New Action: Create a new action for this animation.
  • Action Name: The name of the new action.
  • Frame Rate: The frame rate in the imported file. FaceCap seems to export animations in 24 fps.
  • Head Location: Include the head location in the animation. The head location actually affects the hip bone. In reality, the location of the head depends both on the hip location and the rotation of the spine and neck bones, but the FaceCap file does not provide enough data to disentangle the dependence. Changing the head's local location only is not an option, because it would compress and stretch the neck in a most unnatural way (I tried that).
  • Head Rotation: Include the head rotation in the animation. The tool assigns the entire rotation to the head bone's local rotation, although in reality the head rotation also depends on the rotation of the spine and hip bones.
  • Eyes Rotation: Include the rotation of the eye bones in the animation.