T3DFX Developer Network - 新世代3D 引擎 FOR GAME

登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

主選單

T3DFX Developer Network 討論區索引
   Real-Time Global Illumination
     Real-time Indirect Lighting using Reflective ShadowMap for Directional Lights

討論串 | 最新的先 前一主題 | 下一主題 | 底部
張貼者 討論串
vr3d
張貼於: 2008/12/17 6:30
管理員
註冊日: 2006/8/25
來自: 台灣
張貼數: 32
Real-time Indirect Lighting using Reflective ShadowMap for Directional Lights
t3dfx 5.0 支援real time Indirect Lighting!!!

directional & spot light 使用 reflective shadowmap
及 deferred shading 來完成indirect light 的運算!!!



----------------
3D Madness

vr3d
張貼於: 2009/1/15 7:48
管理員
註冊日: 2006/8/25
來自: 台灣
張貼數: 32
Re: Real-time Indirect Lighting using Reflective ShadowMap for Directional Lights
早在2003年左右第一次接觸Deferred Shading 的原理後,就覺得是個蠻簡單的real-time lighting方法,但是他的缺點在於要求高的Fill Rate,也就是說當解析度越高,不僅要使用較多的記憶體而且pixel shader的運算也多,資料的傳送量也大,再加上如果顯示卡沒支援MRT(Multiple Render Targets)的話,效率將更差!!!



*********************************************************

以下簡單介紹!!!



Deferred Shading 原理很簡單:

先在vertex shader 階段,將一些surface attributes or materials如,diffuse,normal,world position,depth,specular power,motion,velocity...的資料寫到MRT,也就是一種render buffer,通常稱此buffer為G-Buffer(Geometry Buffer)!!!而這個過程我們可稱為material pass or surface pass!!!
在pixel shader 階段,將之前的buffer data拿來做lighting運算,通常光源有point ,directional,spot light,最簡單的方式可以畫screen space的四邊形並執行pixel shader,shader內依不同光源type做lighting運算,然後再把不同光源的運算結果加起來!!!但此法可能每個不會被照到的pixel都會被執行到,所以可以改用基本的光源幾何造型來取代screen space的四邊形,這樣可減少pixel shader的執行數量,並增加效能!!!


Deferred Shading不像multi-pass lighting可能同一幾何物件要依light數量執行好幾次shader(如doom3).

也不像half-life2依據不同light 數量的組合寫了很多shader然後依據不同light數量影響的條件來選擇執行相對應的shader,這種方法依光源的type&material type要寫好幾種組合!!!大概1050個!!!

而multi-pass lighting,則是大約light type數量*material type數量!!!明顯少很多!!!

所以Deferred Shading的優點:lighting時只跟目前可視幾何物件受到的光源數量有關,甚至透過最佳化只要執行一次lighting pass!!!變成幾乎與light數量無關!!!

當然deferred shading 需save surface attributes or materials,要蠻大的texture memory,所以要想辦法減少資料量,選擇適當的MRT format& 儲存的attribute&material data是很重要的!!!





***********************************************************

因為deferred shading 的缺點,讓我遲遲未加到我的引擎的開發list

不過從2007年開始有幾款game有使用deferred shading且顯示卡也都有MRT的支援,且處理能力及效能也大幅提升,所以也該是加入我的3D ENGINE的時候了!!!



所以在2008/11我加Deferred shading到t3dfx engine,包含最佳化大約13工作天完成!!!

另外在2007的某天我讀I3D06的一篇論文發覺使用Reflective Shadowmap 來處理Indirect Light蠻簡單的,所以也打算加到我的engine list,一直到最近2008/12我也加入了t3dfx engine!!!包含最佳化大約8個工作天完成!!!

轉載自my msn blog(2009/1/11)


----------------
3D Madness <img src="http://t3dfx.com/xoops/html/uploads/smil3dbd4d4e4c4f2.gif" alt="" />

討論串 | 最新的先 前一主題 | 下一主題 | 頂部

 


  首頁  |  新聞區  |  討論區  |  網站連結  |  檔案下載  |  常見問題與解答 

Powered by XOOPS 2.0 © 2001-2003 The XOOPS Project