【譯】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻譯[1]



 最近在研究樹木的渲染,看了一些相關的技術說明,幾乎都是老外寫的,再次爲中國遊戲產業的前景感到擔憂。看了幾天的英文,索性也把其中的重要部分翻譯了出來,在這裏與大家共享,先貼出《GPU GEMS 3》第4章的翻譯,第一次寫翻譯,不免有錯漏的地方,歡迎大家指出。如需轉載,請先與本人聯繫。name:LeYond ,qq:413952706

 

 

第四章 下一代SpeedTree渲染

4.1. 導言

    SpeedTreeIDV開發的中間層程序包,用以渲染實時樹木。遊戲使用SpeedTree在選擇如何渲染SpeedTrees有很大的自由度。我們討論幾種高質量的GeForce880的特性,對下一代SpeedTree進行擴展。首先邊緣裁剪爲樹枝和樹幹的輪廓增加細節。其次,陰影貼圖在樹葉個體級別上增加真實的自陰影。除此之外,我們進一步簡化葉子雙面的光照模型和HDR的渲染。最後,伴隨Alpha通道的多重採樣抗鋸齒產生非常高的視覺效果,避免了走樣的現象。

4.2. 輪廓裁剪

    樹枝和樹幹都是有機、不規則且複雜的。圖4-1就是一個典型的例子:雖然樹枝都接近圓柱體,但輪廓的細節部分顯得粗糙且不規則。一箇中等精度或低精度的樹幹模型包含1000個面,是不能表現這些細節的。由此產生的筆直的多邊形邊緣是很難發現的,但它所生成的計算機圖像中卻又顯得重要。

 

    許多算法都可以幫助在樹枝上長生大量的細節,就如4-1所看到的。最原始且最廣泛的便是用凹凸貼圖技術。凹凸貼圖技術在樹幹的內部(即非邊緣)可生成不錯的效果,就像圖4-1中綠色方框裏顯示的那樣。但是,他完全不可能在邊緣生成如藍色方框裏顯示的高度細節。同時它也不能生成因觀察者的變化而產生的深度視差效果。有兩種比凹凸貼圖更好的技術:雕刻紋理relief mapping(Oliveira and Policarpo 2005),視差紋理parallax occlusion mapping (POM)(Tatarchuk 2006)。這兩種技術都是在物體的表面進行光線跟蹤,他們能增加視差和自身遮蔽的效果。(我們使用雕刻紋理來包含這兩種效果。)在視察貼圖中,該效果再次別限制於物體的內部,物體的輪廓毅然沒有改變。題刻紋理提供了幾種擴展,其中之一支持輪廓部分,但它需要而外的預處理來實現它。最終,模型的花紋和位移紋理都能同時被應用,但如果要渲染一個充滿樹木的森林的話,它的巨大開銷在幾何處理中是不值得的。

 

    我們的方法,將在樹幹部分使用雕刻紋理,使得在樹幹內部產生細節,並增加技術來產生輪廓細節。這些都不被SpeedTree的着色器支持,但他們能夠簡單地加入,因爲可以使用工具、文件還有在API中增加自己的函數,包括附加的紋理。

 

    在輪廓部分,我們使用自己開發的輪廓裁剪的技術。雖然這個技術不像Sander et al. 2000中描述的那樣,但效果非常相似。我們的技術是在物體的輪廓上垂直擠出薄片。這些輪廓進行像雕刻紋理中光線在高度圖中的相似的計算。有了雕刻紋理在樹枝多邊形上的使用,這個技術不需要而外的預計算。

 

4.2.1 輪廓薄片的擠壓

    輪廓渲染的第一個不走是擠壓薄片。我們通過平滑每個頂點的法線來使輪廓的邊緣包含在三角形中。如果頂點法線和觀察向量的點乘在三角形邊緣改變符號,我們則在計算已經變換的觀察向量和已經變換的法線的點積,在這個三角形邊緣上,且點積等於0的位置新建一個頂點。圖4.2是此步驟的示意圖。

4-2. 在一個觀察方向,單個三角形上邊緣的擠壓

 

(a)頂點已經平滑的三角形 (b)觀察向量的計算 c)輪廓斷點的計算         (d)薄片擠壓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章