2009年3月18日 星期三

高動態光照渲染技術解說(High-Dynamic Range,簡稱HDR)



何為HDR?

動態光照渲染(High-Dynamic Range,簡稱HDR),電腦圖形學中的渲染方法之一,可令立體場景更加逼真,大幅提升遊戲的真實感。

現實中,當人由黑暗地方走到光亮地方,眼睛會自動眯起來。人在黑暗的地方,為了看清楚物件,瞳孔會很大張開,以吸收更多光線。當突然走到光亮地方,瞳孔來不及收縮,所以唯有眯上眼睛,保護視網膜上的視神經。

而電腦是死物,唯有靠HDR技術模疑這效果——人眼自動適應光線變化的能力。方法是快速將光線渲染得非常光亮,然後將亮度逐漸降低。而HDR的最終效果是亮處的效果是鮮亮,而黑暗處的效果是能分辨物體的輪廓和深度,而不是以往的一團黑。

當HDR技術使用時, 現舉例一場景: 陽光普照下,水旁有一道牆壁。當陽光由水面反射到牆上,晴朗而明亮的天空會稍微暗一些,這樣能有助表現出水面的反光效果。當人們低頭看水面,陽光會反射到人眼中,整個畫面會非常光亮,並逐漸減弱,因為人眼適應了從水面反射的光。



無法在開啟HDR的情況下打開FSAA(全屏抗鋸齒)的原因:


在初期,顯示卡技術不夠成熟,NVIDIA使用OpenEXR作為HDR運算的緩存格式,而GeForce 6和GeForce 7系列顯示卡都只提供了對OpenEXR的16位浮點(FP16)貼圖和存儲支持。但在DirectX 9.0模式下運行FP16時,霸佔了原本屬於全屏抗鋸齒的緩存區域,令開啟HDR效果後無法進行FSAA處理。這導致NVIDIA顯示卡在遊戲中無法同時支援FSAA和HDR。

ATi則在其Radeon X1 Series中,使用指定另外緩衝區來解決這個問題,不過由於這是API的限制,程式設計者還是必須對遊戲進行改做才能實現HDR+FSAA。

這是一個列表關於顯示卡可以或可能支援HDR。這是由於支援HDR的最低要求是支援Shader Model 2.0 (即DirectX 9),任何顯示卡支援Shader Model 2.0就可以支援HDR。但是,軟體使用HDR可能大幅度影響其效能,所以敬請使用者注意其硬件要求,以獲得較佳效能。






沒有留言: