1

我使用 Photoshop 的 NVIDIA 纹理工具插件保存了 *.dds 图像,并选择了 D3DFMT_A32R32G32B32F 格式。因为它是浮点格式,所以我认为数据保存在线性颜色空间中。然而,当我在我的代码中加载文件时,我发现我需要执行从 sRGB 到线性的转换,以获得我期望的结果。

这个对吗?D3DFMT_A32R32G32B32F 是 sRGB 格式吗?或者,它是 Photoshop 插件中的错误吗?或者,就色彩空间而言,格式是否不可知?

在相关说明中,我选择了旧版 D3DFMT_A32R32G32B32F 格式,因为该插件似乎不支持较新的 DXGI 格式。

4

1 回答 1

1

浮点数据在技术上可以在任何颜色空间中。在DirectXTex 中,我通常将浮点格式视为线性空间,但旧插件当然可以将所有内容视为 sRGB。

传统DDSURFACEDESC2的 DDS 文件没有明确编码色彩空间。NVIDIA 的一些 hack 尝试添加 sRGB 与线性,但从未被广泛采用。使用使用 的DX10扩展标头DXGI_FORMAT,只有少数格式明确指示 sRGB,因此即使在那里,您也可以在技术上拥有各种颜色空间的数据。

请参阅此博客文章

于 2019-12-07T07:22:00.533 回答