當使用函數:D3DXSaveTextureToFile並傳遞D3DXIFF_BMP創建一個bmp我注意到,值似乎是估計,而不是具體給出。d3dx庫如何將紋理保存到文件?
糾正我,如果我錯了,但浮點紋理可以存儲任何給定紋理元素中的任何浮點數,它會將它放在rgb(255,255,255,255)之間的BMP範圍之外,所以看起來功能所做的只是簡單地將紋理的最高和最低值以及在該範圍之間進行歸一化。
所以我的問題是:是否有可能像內存中一樣抓取值?包括何時顏色超出電腦顯示器的範圍?
當使用函數:D3DXSaveTextureToFile並傳遞D3DXIFF_BMP創建一個bmp我注意到,值似乎是估計,而不是具體給出。d3dx庫如何將紋理保存到文件?
糾正我,如果我錯了,但浮點紋理可以存儲任何給定紋理元素中的任何浮點數,它會將它放在rgb(255,255,255,255)之間的BMP範圍之外,所以看起來功能所做的只是簡單地將紋理的最高和最低值以及在該範圍之間進行歸一化。
所以我的問題是:是否有可能像內存中一樣抓取值?包括何時顏色超出電腦顯示器的範圍?
請勿使用BMP。使用支持所需數據類型的格式。對於DX紋理,看起來D3DXIFF_PFM
格式是您需要的格式。它的描述如下:
便攜式浮動地圖格式。一個原始的 浮點圖像格式,沒有 任何壓縮。文件頭 指定圖像寬度,高度, 單色或彩色,以及機器字 的順序。像素數據以32位 浮點值存儲,其中每個像素顏色值爲3個值 ,單色像素值爲 。
請注意,圖像將會很大。這種格式的256x256紋理的重量應該在768 KB左右。
更新:您應該可以使用Image Magick的display命令來查看此格式的圖像。另外HDRView支持PFM格式。第三種選擇可能是fv。