About the tangent space to world space conversion tool
Profiling the Ice Cave demo showed that there was a bottleneck in the Arithmetic pipeline. To reduce the load, the Ice Cave demo uses world space normal maps for the static geometry, instead of tangent space normal maps.
Tangent space normal maps are useful for animated and dynamic objects but require additional computations to correctly orient the sampled normal.
Because most of the geometry in the Ice Cave demo is static, the normal maps were converted into world space normal maps. This ensures that normal sampled for textures are already correctly oriented in world space. This change is possible because the Ice Cave demo lighting is computed in a custom shader, whereas the Unity standard shader uses tangent space normal maps.
The conversion tool is composed of:
A C# script that adds a new option in the editor.
A shader that performs the conversion.
The tool runs offline from inside the Unity editor and it does not affect the run-time performance of your game.