選單

虛幻引擎5技術解析:幾何影象的思想

虛幻引擎5技術解析:幾何影象的思想

虛幻引擎5令人驚豔的實時渲染效果。

Lumen in the Land of Nanite

,在PlayStation 5上執行的實時演示。

2020年5月13日,Epic Game揭開了

虛幻引擎5

的神秘面紗,該公司釋出的演示影片驚豔了全球遊戲業。虛幻引擎5的強大效能徹底地征服了計算機圖形學領域的學術同行和廣大玩家。這次技術飛躍使得遊戲中的實時細節渲染更加逼近電影CG效果和真實的物理世界。

虛幻引擎5具備兩大全新核心技術:

Nanite

虛擬微多邊形幾何技術和

Lumen

動態全域性光照技術。Nanite虛擬幾何技術的出現意味著由數以億計的多邊形組成的影視級藝術作品可以被直接匯入虛幻引擎,Nanite幾何體可以被實時流送和縮放,因此無需再考慮多邊形數量預算、多邊形記憶體預算或繪製次數預算了;也不用再將細節烘焙到法線貼圖或手動編輯細節層次(LOD),這必定是圖形學領域革命性的飛躍。如圖1所示,演示中每個武士雕像都有3300萬個多邊形,其幾何細節精雕細琢得無以復加,其逼真程度令人歎為觀止!

虛幻引擎5技術解析:幾何影象的思想

圖1。 每個雕像具有3300萬個多邊形。

傳統方法

傳統的計算機圖形學技術中,三維幾何形狀用所謂的三角網格來表示。我們在曲面上稠密取樣,然後將取樣點三角剖分,記錄下三角網格的組合結構資訊,同時記錄下所有頂點的三維位置資訊,我們由此來表達曲面形狀。相比於影象,三角網格的組合結構通常是不規則的,我們無法透過每個頂點的序號來預測頂點所在的區域。這種不規則性,使得三角網格無法直接用硬體表達和隨機存取;在幾何處理軟體中,三角網格的資料結構需要大量的指標,需要複雜精巧的演算法來處理。

虛幻引擎5技術解析:幾何影象的思想

圖2。 曲面形狀由三角網格資料結構來表達。

曲面幾何的細節由三角面片來表達,給定同樣的原始曲面,粗糙的幾何需要較低的取樣率和較少的三角面片(低模),精密的幾何表示需要更高的取樣率和更多的三角面片(高模)。低模提高了渲染速度,但是降低了畫面質量;高解析度的三角網格降低渲染畫面的幀率,但是提高了畫面渲染質量。在遊戲中,為了達到實時互動的速度,根據人物距離鏡頭的遠見,視角方向,我們可以動態選擇不同精密程度的三角網格。低模和高模可以用統一的資料格式來表示,動態改變解析度,這一幾何表示被稱為是LOD(Level Of Detail)表示,由Hughes Hoppe所發明,目前普遍用於遊戲引擎之中。圖3顯示了同一張老人臉的不同層次的幾何表示。

虛幻引擎5技術解析:幾何影象的思想

圖3。 曲面的細節層次(LOD)表示。

曲面的形狀不足以表達幾何體的所有資訊,我們需要曲面的顏色資訊,材料資訊(例如金屬質感)、粗糙程度、光學特性等資訊。這些資訊往往儲存在所謂的紋理影象之中,每個畫素對應曲面上一個點,畫素值代表了對應點處的顏色、材料、光學性質等資訊。這些影象被稱作紋理影象,紋理影象和曲面之間的對映被稱為是曲面的引數化。將紋理影象貼敷到曲面上的過程被稱為是紋理貼圖。圖3顯示了紋理貼圖的例項。第一行是隻有幾何、沒有紋理的“白模”;中間行是兩張不同的紋理影象;下面一行是不同紋理貼圖的渲染效果。

虛幻引擎5技術解析:幾何影象的思想

虛幻引擎5技術解析:幾何影象的思想

虛幻引擎5技術解析:幾何影象的思想

圖3。 曲面紋理貼圖。

紋理影象也可用於表達其他資訊,例如法向量貼圖。如圖4所示,我們將怪獸模型引數化到平面圓盤,然後將曲面上每一點的法向量存在相應的紋理畫素中,我們用紅綠藍顏色來表示法向量的座標,如此得到了法向量紋理圖。我們用高模來生成法向量紋理圖,然後將其貼在低模上。渲染的質量取決於法向量的精密程度,而渲染速度依賴於三角面片的個數。一方面,我們希望提高法向量的精密程度,另一方面我們希望減少三角面片的個數,如此低模配上高模生成的法向量紋理圖是一個巧妙的解決方案。

虛幻引擎5技術解析:幾何影象的思想

圖4。 由最優傳輸對映得到的法向量貼圖。

將高模生成的法向量紋理嚴絲合縫地貼到低模上,需要建立高模和低模之間的對映,如圖5所示,我們在三維空間中將高模和低模儘量對齊,然後將低模向高模投影,每個低模頂點找到高模曲面上的最近點,從而建立對映。這一過程被稱為是所謂的“烘焙”。

虛幻引擎5技術解析:幾何影象的思想

圖4。 烘焙過程。

我們看到傳統方法中的幾何壓縮、建立LOD表示,法向貼圖,烘焙,核心都是為了提高渲染質量,提高渲染速度。這些傳統技術依賴於微分幾何原理,需要複雜的演算法來實現。而Nanite的虛擬微多邊形幾何技術使得這些技術都過時了,可謂石破天驚,一騎絕塵!

Nanite 幾何影象方法

那麼,Nanite的虛擬微多邊形幾何技術究竟高明在哪裡?為什麼一夜之間就可以摒棄人們數十年來積累的技術?很多計算機圖形學領域的專家分析,Nanite的幾何技術很有可能是基於老顧18年前與Gortler 教授、Hughes Hoppe合作的SIGGRAPH論文,“幾何影象”【1】。

如上討論,我們看到在圖形學中有兩種主要的資料結構:表示幾何的不規則三角網格和表示紋理的規則影象。為了處理這兩種迥然不同的資料,圖形處理單元(GPU)硬體中設定了兩條流水線,一條用於處理三角網格,另外一條用於出來紋理影象。老顧當時的想法是將兩種資料結構統一成紋理影象,從而拋棄三角網格的流水線,由紋理影象的流水線處理幾何與紋理資料,從而簡化GPU的硬體設計,提高渲染速度。

虛幻引擎5技術解析:幾何影象的思想

圖5。 曲面共形引數化。

虛幻引擎5技術解析:幾何影象的思想

圖6。 大衛王頭像的幾何影象(左幀)與法向紋理圖(右幀)。

圖5和圖6顯示了將三角網格轉換成幾何影象的計算過程。首先,我們將三角網格引數化,對映到平面長方形區域,儘量減小畸變;然後,我們在平面上重新取樣,將幾何位置和法向量資訊記錄在影象的相應畫素處,用紅綠藍來編碼。由圖6,我們可以看到,幾何影象比法向紋理光滑很多。

虛幻引擎5技術解析:幾何影象的思想

圖7。 幾何影象到三維曲面的轉換(MIPMAP)。

幾何影象包含了三維曲面的全部幾何資訊,自然可以被渲染成曲面。當然,實際應用中,我們也可以將高模曲面相對於低模曲面的位移也表示成幾何影象,達到浮雕效果。總而言之,我們用影象的資料結構來統一幾何和紋理,每個曲面模型都表示成幾張巨大的紋理影象。例如Nanite技術中的曲面包含幾何影象、顏色紋理、金屬材質紋理、光學特性等幾張紋理。這種規則的表示方法具有很多優點,例如渲染過程中可以動態決定解析率(mipmap pyramid),可以動態細分加密(subdivision),動態生成紋理,例如儲存全域性光照的中間計算結果等等。特別是,幾何影象的格式,使得記憶體訪問模式更加有規律,更加容易預測,從而提高記憶體訪問效率,極大地提高了資料排程的速度。

那麼,為什麼18年前GPU沒有采用幾何影象的技術路線呢?老顧覺得一個重要原因在於那時候曲面引數化技術還沒有出現,從三角網格到幾何影象的轉換非常困難。現在,由於計算共形幾何的理論和演算法成熟,計算最優傳輸對映也接近成熟,曲面引數化的問題不再是瓶頸。

展望

從2002年至今,幾何影象這篇文章在圖形學領域廣泛傳播,專家學者同行們進行了大量的後繼研究,引用數目上千。無數的學者和工程師們耗費多年的心血,全面改進了技術,推動了這一領域的發展,日積月累,終於一鳴驚人。如果幾何影象被工業界廣泛接受,那麼全域性引數化、基於幾何影象的渲染、基於幾何影象的硬體設計會吸引人們更多的注意。相應的,微分幾何理論基礎將會成為圖形學領域的必修課程之一。在未來,我們期待基礎數學更加深刻的應用,圖形學領域更多革命性的成果湧現!

【1】 X。 Gu, S。 Gortler and H。 Hoppe, Geometry Images, SIGGRAPH 2002, http://hhoppe。com/proj/gim/