How to bake thicknessMap for gltf transmission volume?

Hello, I want to reproduce the glassCover’s thicknessMap, of this newly merged gltf_transmission
Example ( PR ).
The thicknessMap in the example is this:

I followed the tutorial to bake the glassCover of the example’s model, but after tried many combinations, the results are all very different from the example:

What’s wrong of my baking?

That’s a good idea trying to recreate the thickness texture from this example. I’m struggling with it too, at least in part because Blender’s AO documentation isn’t very complete… It mentions that the Distance property is:

Distance up to which other objects are considered to occlude the shading point.

That can’t be the whole story – if it’s a threshold, then setting Distance to a very high value should give the same result as setting it to a value just slightly larger than the object, and that isn’t the case. Perhaps that distance (in meters) also determines a 1.0 output from the AO node represents? Then I guess you’d want to choose it to be close to the largest “internal” distance. It’s worth noting that you can scale the whole thing up/down with a factor, to get the right units relative to the rest of the scene.

I got close-ish with this setup, but it hardly seems scientific to use a ramp node to tune the results. :sweat_smile: I don’t think Blender’s AO baker is seeing as smooth a thickness change, from the top of the lid down, as whatever tool originally baked this texture.

EDIT: Supposedly XNormal is a good tool for thickness maps, but it’s Windows-only so I’m not able to test that.

1 Like

In fact, by intuition, I feel the output of the blender is more resonable.
Because the edges of the handle and main body both thin, so should have similar grayscale.

Don’t know why the example’s thicknessMap is inconsistant. Seems height position related?

Thanks for recomanding XNormal! I’ll try to see the result of it.

From XNormal, I get this result. And there seems no options for thicknessMap to tweak.

I feel XNormal’s result still similar to blender’s result, not similar to example’s thicknessMap.

Blender thicknessMap bake result:

PS: May just focus on the outter part ( left part ) is enough, don’t need care about the inner part ( right part ).
But there is also very obvious difference that, Blender and XNormal’s results have very narrow white area, but example’s thicknessMap has very wide white area.

Now I think the thicknessMap of the example is hand-tweaked for artistic reasons, not 100% geometry based.
So I intend to give up reproduce it.

Just to test whether the results of Blender and XNormal with various geometry are viewing correct in three.js and other environment.

Yeah, ooking at the cross-section I’d agree – this must have been hand-tweaked a bit. The thickness map from Blender does look more like the physical thickness profile:

1 Like