I'm working on SAO (http://graphics.cs.williams.edu/papers/SAOHPG12/) and I want to store my ambient obscurance term (a value between 0.0 and 1.0) in a texture.
When I did shadowmapping, I created my depth-texture as DXGI_FORMAT_R32_TYPELESS
and the shader resoure view as DXGI_FORMAT_R32_FLOAT
, however with this I want a DXGI_FORMAT_R8_TYPELESS
format and a FLOAT
equivalent, yet there appears to be none according to the docs (http://msdn.microsoft.com/en-us/library/windows/desktop/bb173059(v=vs.85).aspx)
1) What texture/srv/rtv format should I use if I want to store/read/write 8-bit float values?
2) Does the format used really matter? Does directx do any behind-the-scenes alterations to the texture data? Is a DXGI_FORMAT_R8_UNORM
treated differently from a DXGI_FORMAT_R8_SNORM
for example?
DXGI_FORMAT_U8_UNORM
is what you want if you do indeed need an 8-bit value (and yes, that's different than anSNORM
, in that the former maps [0,256) to [0, 1.0] while the later maps [-128,+128) to [-1.0,+1.0]). \$\endgroup\$