microsoft/DirectXTex

DXT5 RGBM encoding support

walbourn opened this issue · 0 comments

As a way to save memory with lightmaps, a variant of DXT5/BC3 uses RGBM instead of RGBA to encode HDR content.

http://www.ludicon.com/castano/blog/2016/09/lightmap-compression-in-the-witness/

In a shader it would be reconstructed as:

float4 data = Texture.Sample(sampler, uv);
data.rgb = data.rgb * data.a * 5.0;
data.a = 1.0;