KlayGE中的延遲渲染(二)

2022-05-17 16:44:08 字數 659 閱讀 7755

在klayge中的延遲渲染(一)裡,我們推出了lighting pass裡的計算,本篇將講解g-buffer階段和shading pass階段。

從公式可以看出,在light pass裡需要的量有nh,alpha,cspec,lc。因為h= (n+lc) / 2(見遊戲中基於物理的渲染系列文章),而lc= normalize(lp)(l是光源位置,p是要計算的點位置),所以最終需要g-buffer提供的量有:np,alpha和cspec。要完整的儲存這些量,一共需要8個通道,normal佔3個,position佔3個,alpha和cspec分別佔乙個。這樣對g-buffer來說消耗太大了,必須要縮減。

顯而易見的是,normal是經過歸一化的,只需要儲存2個分量。比較了多種儲存2分量的方法,其中spheremap transform速度和效果綜合起來最佳,crytek也在用同樣的方法,即:

剩餘內容請見

KlayGE中的字型

官方文件參見 這裡只是一些測試 看了龔敏敏寫的文件,覺得這種方式很意思,就拿來玩玩.因為中文字型的渲染在3d程式中確實是個問題,尤其是字型大小不固定時,放縮會出現走樣.klayge的方法是一種用位圖模擬向量圖的方案,把計算過程放在字型生成時,而執行時的繪製相對常規方法來說消耗很小.kfontgen目...

Unity中的前向渲染路徑和延遲渲染路徑

渲染路徑核心 光照處理。unity中光照 逐頂點 逐畫素 球諧光照。逐畫素光照 按照每個畫素的顏色被計算,看起來比較平滑 逐頂點光照 每個頂點上做光照,其他地方插值,效果粗糙。但是逐畫素光照中,每個光源會使每個光源光照範圍內的物體增加乙個渲染批次。延遲渲染可以解決逐畫素光照對光源造成的效能影響。延遲...

前向渲染和延遲渲染的區別

前向渲染和延遲渲染是兩種光照渲染模式。假設有1個光源和1000個具有光照反射的三角形在view coordinate沿著z軸正方形延伸擺放,法線與z軸平行,即所有三角形xy全相同,只有z不同,但是這裡增加乙個條件 擺放順序是無序的。從螢幕上其實你只能看到乙個帶光照的三角形,其他的都被擋住了。那麼前向...