瀏覽單個文章
Artx1
Registered User
 

加入日期: Jun 2002
您的住址: 耗電量頗高的地方.
文章: 1,959
對自己說:做做功課之後再講話會比較好.@@
以下是拾人牙慧的東西.

總之, Doom3的volumetric shadow本身已經是很有歷史的東西, 但是如果沒有把幾個特殊狀況處理好的話是會有問題的. 比如說如果shadow volume被clipping plane切到的時候, 和view point如果跑到shadow volume裡面的時候, 都會讓結果產生錯誤, 於是就是得用CPU去判斷, 所以先前才說volumetric shadow需要CPU.

接著, JC提出Carmack's Reverse演算法. 在這個演算法下不存在view point的錯亂問題(不會有跑進去的狀況), 而且clipping的判斷也變成只需要判斷far clipping plane而不需要判斷near plane, 使得負擔減小; 之後nVIDIA的人員(Mark J. Kilgard)與JC在討論後提出了解決far clip plane的方法--infinite clip plane, 不再使用far plane. 不過這在有正確的GL Renderer的前提下, 在GL底下是可行的; D3D下則會有問題.

之後, nVIDIA又提出了新的方法, 在clamp shadow volume附加Z值, 但這個需要另外的硬體支援.

然後到了現在, 因為Carmack's Reverse會使得shadow volume變大很多(和原來的做法比較的話), 因此nVIDIA又提出了一些新的方法來提高效率. 其中一個就是two-side stencil test.(其實這功能已經很普及了, 一來NV3x與R300都有, 二來DX9也支援了), 接著就是Ultra-Shadow(NV35新支援的功能)

所以其實並不是說NV3x全都可以做到NV35那麼複雜的clipping功能, 但是如果光是two-side stencil的話, 的確是R300與NV3x都作得到. (記得NV35提出Ultra-Shdaow的時候, ATi不也宣稱它有類似的技術? 總結起來就像上頭那樣)

不過, 雖然Volumetric Shadow已經發展成這樣, 它還是一個頗複雜的東西, 所以會不會普及其實說不準; 而還是有很多人認為Shadow Mapping會比較有效率, 主流也許會繼續朝這方向跑.
舊 2003-07-11, 09:50 PM #75
回應時引用此文章
Artx1離線中