http://www.crytek.com/sites/default/files/20100301_lpv.pdf
http://www.crytek.com/sites/default/files/2010-I3D_CLPV.ppt
2010 i3d上的一個文章,ppt的有圖,pdf則更加的詳細一些。
crytek在之前的sig09上的介紹了light propagation volume,本blog里面也有了介紹:[http://blog.csdn.net/ccanan/article/details/4975066](http://blog.csdn.net/ccanan/article/details/4975066)
一些重復的事情就省去了。
開篇介紹了相當多的reference的東西,都是很不錯的文章,盡管有些和crytek介紹的算法沒有太大關系,但也是幫助crytek結出這么個果實不可或缺的部分。
再次對作者(Anton Kaplanyan@Crytek GmbH和Carsten Dachsbachery@VISUS / University Stuttgart)表示敬意,真是閱讀了大量的文章,并且做了分析,在這基礎上做了實現,最終分享出來,把游戲業進一步的向前推進,可謂hardcore!
后面的步驟和09sig上的文章差不多(本身時間也就是差了幾個月么):
**LightPropagationVolume Initialization:**
- 渲染reflective shadow map(rsm)
- rsm的每個pixel被看作是反射光的一個分布,作為virtual point light(vpl for short)照亮light propagation volume
- 這里存儲的值是sh系數
**SceneGeometry Injection**
使用另外一個3d tex來存儲scene geometry分布,用來進行indirectlighting的遮擋,也就是會形成indirectlighting shadow。
scene geometry distribution也是用sh系數表示,來源是gbuffer,gbuffer的種類越多越好,存儲是用3d的tex,所以越多就越能準確的表達occlusion的信息。
不過只有camera view的話,也能頂一下。
sh系數在3d tex里面,進一步的propagation,就完成了occlusion distribution的構建。
里面crytek給了幾個名詞:
indirectlighting遮擋叫做fuzzy occlusion
geometry 分布這個叫做geometry volume(GV)
**PropagationScehe**
這里的propagation是經歷了一個在destination cell在各個face上收集energy,然后以sh系數的方式在投射到中心點的這么一個過程。
在算法上,構建face上的投射是使用create一個visibility的sh系數方式來做的,乘以source的intensity就得到在這個face上光通量(flux)的分布(以sh系數的形式)
不過crytek說直接這樣做就精度很差,所以做了一個變化,使用中間那個圖抓的wc作為整個椎體的代表,這個角度上得到的intensity作為整個錐的一個平均值。
然后由face上的分布推出這個cell中心點的intensity分布就好。
這個過程中就會考慮到前面建立的geometry volume了,被遮擋的情況下,就會做衰減。
然后重復做這個propagation,就模擬了光的傳遞。
**Cascade**
看名字就知道怎么回事了,和cascaded shadow map類似的做法,有過渡,有snap to grid來防止抖動。
**實現細節**
使用2階sh系數,也就是4個數(這個絕對是挺低的)。
cascade grid是rgba16f的32x32x32的3d texture。
rsm的resolution是256
light propagation部分做了8次迭代。
**sth more**
在有了之前的實現之后,這樣幾件事情順理成章了:
- 做多次bounce
- 對particle一類的做indirectlighting
- glossy reflection
**性能:**
這個圖里可以看出在console上是4ms及以下就可以達到,算是很不錯了。
- 前言
- PracticalOcclusionCullingInKillZone3
- KillZone3的版本發布工具
- BattleField 3和NeedForSpeedTheRun中的渲染技術
- Shiny PC Graphics in Battle Filed 3
- Cascaded Light Propagation Volumes for Real-Time Indirect Illumination
- [crytek]Spherical Skinning withDual-Quaternions and QTangents
- [gdc12]神秘海域的水技術
- 《鋼鐵俠》等電影中的image based lighting和physical shading
- CompanyOfHeroes2渲染技術
- [sig13]Lighting technology of "The Last Of Us"