我正在尝试将在 XNA 中渲染的图像保存到磁盘。这实际上很容易,但更重要的是我需要每个通道的完整 32 位浮点精度,而不仅仅是 0-255 范围。
我一直在研究使用纹理打包(将浮点数转换为 4 分量 ARGB),但我担心这样会失去精度。我需要非常高的准确性。
我正在研究的另一种方法是使用着色器并将浮点分量与 2147483647(最大正整数)相乘,然后遍历每个位并在渲染图像中存储二进制 0 或 1。以后可以用常规代码重新组合每个图像,以重建全精度浮点数。这可行,但问题是,着色器模型 3.0 似乎不能正确支持 32 位 int。通过这种方式,我得到的只是 24 位精度。
有没有办法以更直接和准确的方式做到这一点?