thicket icon indicating copy to clipboard operation
thicket copied to clipboard

Add material quality setting

Open tdapper opened this issue 5 years ago • 4 comments

The other Laubwerk plugins all allow to set material quality to high, medium, and low, to allow for object further away to render much faster. Depending on the way the host application works, this is a setting in the browser or in the object attribute panel. I guess in Blender, since materials get updated when model settings are changed, it could go into the object attribute panel.

tdapper avatar Oct 24 '20 13:10 tdapper

Thanks for the feedback.

I previously ran a rendering performance test to measure the render time impact of the various material properties. The only one which I found to make a significant difference was the alpha map. Since without the alpha map, none of the others (base, bump, transmission) really made sense.

For the viewport, Blender already provides a means to switch between solid, material preview, and render.

For the render itself, we could add a "use materials" checkbox so distant plants could be rendered with no materials. Would that address this issue?

If not, can you provide more detail about how material settings of high, medium, and low should affect the materials? Which properties are changed?

dvhart avatar Oct 24 '20 16:10 dvhart

Also - my render performance test may not have captured all the relevant information - so if there is a specific scene or conditions I should consider, please let me know. Happy to run more tests.

dvhart avatar Oct 24 '20 16:10 dvhart

The first reason I am suggesting this for is consistency with the other plugins.

The reason we are doing that in the other plugins is not purely rendering time, but it does play a role. Which parameters we include and which ones we don't, depends, to a certain degree, on what the renderer does well. As an example, before PBR became commonplace, we sometimes enabled specular glossiness to consider actual reflections and sometimes we did not, because performance for this varied drastically between rendererers.

Generally the low detail does not include any textures and only has flat colors. That includes the alpha channel (which you found to be influencing rendering performance). Another, aspect beyond rendering times, is texture memory (which in this case would be zero).

For high medium detail, we usually do not include translucency and do not use specular intensity and roughness textures. The former should influence rendering times noticeably, but since translucency appears to be missing (see https://github.com/Thicket-Blender/thicket/issues/35), this is not yet an issue. Specular textures again limit memory use.

Also neither low nor medium detail level typically do double-sided textures (because these almost double texture memory use but don't contribute a lot, when viewed from a distance).

tdapper avatar Oct 24 '20 18:10 tdapper

This is really helpful to get started, thanks for the added context.

dvhart avatar Oct 25 '20 01:10 dvhart

Due to changes in the Laubwerk API and the lack of current API documentation, I am no longer able to develop or maintain Thicket. Consider trying Laubwerk’s fork of thicket:

https://github.com/Laubwerk/player-for-blender

Thank you for using Thicket, it was a lot of fun to develop.

dvhart avatar Jul 05 '24 18:07 dvhart