<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                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及以下就可以達到,算是很不錯了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看