我想将正常值写入纹理格式的DXGI_FORMAT_R11G11B10_FLOAT。我知道写"0.5 *正常+ 0.5“很好。但我的纹理格式是浮子,所以我尝试写解压正常,但它没有工作。DirectX11支持减值纹理吗?
发布于 2021-03-08 21:26:26
DXGI_FORMAT_R11G11B10_FLOAT是一种积极的唯一格式。见Microsoft。
三个部分精确的浮点数字编码成一个32位值( s10e5的一个变体,它是符号位、10位尾数和5位有偏(15)指数).没有符号位,每个通道有一个5位有偏(15)指数,R和G有6位尾数,B有5位尾数,如下图所示。
如果要向呈现目标写入负浮点值,则需要使用不同的格式。
DXGI_FORMAT_R32G32B32A32_FLOAT
DXGI_FORMAT_R16G16B16A16_FLOATDXGI_FORMAT_R32G32B32_FLOAT也是一个选项,但是任何Direct3D硬件功能级别都不需要将这种格式作为呈现目标来支持。您必须检查支持,并在不支持时进行备份。
https://stackoverflow.com/questions/66531974
复制相似问题