在使用函数: D3DXSaveTextureToFile并传入D3DXIFF_BMP来创建bmp时,我注意到这些值似乎是估计的,而不是具体给出的。
如果我错了,请纠正我,但是浮点纹理可以在任何给定的纹理元素中存储任何浮点数,这将使其超出BMP的范围,该范围位于rgb(255,255,255,255)之间,因此该函数所做的似乎只是获取纹理的最高和最低值,并在该范围之间对其进行归一化。
所以我的问题是:是否有可能获取与内存中的值完全相同的值?包括当颜色超出计算机显示器的范围时?
发布于 2009-10-14 12:44:07
不要使用BMP。使用支持所需数据类型的格式。对于DX纹理,似乎D3DXIFF_PFM格式正是您所需要的。它是这样描述的:
可移植浮点贴图格式。未经任何压缩的原始浮点图像格式。文件头指定图像宽度、高度、单色或彩色以及机器字顺序。像素数据存储为32位浮点值,颜色为每个像素3个值,单色为每个像素一个值。
但请注意,图像将会很大。此格式的256x256纹理的大小约为768KB。
更新:你应该可以使用Image Magick的显示命令来查看这种格式的图像。另外,HDRView支持PFM格式。第三种选择可能是fv。
https://stackoverflow.com/questions/1565725
复制相似问题