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.