虛擬紋理與幾何圖像技術


虛擬紋理與幾何圖像技術

一.     基本圖形學概念

 

 

1. 幾何與紋理。

曲面一般表示成三角網格和紋理圖像,三角網格表示曲面的幾何拓撲信息,紋理圖像給出曲面的顏色材質等信息。將三角網格映射到平面區域的過程被稱為曲面參數化,將紋理圖像貼合到曲面上被稱為紋理貼圖。圖1顯示了一張人臉曲面的三角網格、紋理圖像;圖2是圖1數據的渲染結果。

 

 

2. 幾何加紋理渲染效果。

為了提高實時渲染速度,減小內存存儲要求,為同一個幾何模型准備了不同解析率的三角網格,根據細節層次(Level of Details)要求來決定所用的解析率。如圖3所示,如果幾何體距離鏡頭很遠,用低解析率的模型;反之,如果曲面距離鏡頭很近,用高解析率的模型。不同LOD的三角網格可以采用同樣的紋理圖像,所以這些網格具有同樣的參數化。

 

 

 

 

 

 

3. 幾何曲面的LOD表示,從低模到高模。

4顯示在渲染過程中,對於鏡頭可以看到的部分,曲面的解析率可以動態提高,而對於鏡頭看不到的部分,曲面的解析率可以動態降低。例如貼近佛像的頭部,佛像的身體部分可以用很粗糙的三角剖分;從右側觀察天使的雕像,則右側的三角剖分比左側精細很多。

 

 

4. 三角網格的LOD表示,局部的解析率根據視點動態變化。

類似的,紋理圖像也有不同的解析率,將一張高清的紋理圖像下采樣,得到一系列的紋理圖像,被稱為紋理圖像的mipmap金字塔。如果渲染畫面的屏幕具有高解析率,曲面距離鏡頭很近,需要采用高解析率的紋理圖像,否則采用金字塔高層的紋理圖像。

 

 

5. 紋理圖像的mipmap pyramid.

如圖6所示,反之給定低模的三角網格,可以依據一定的規則,將網格加細(subdivision),得到更為精細的三角網格。多次細分之后,三角網格幾乎處處收斂到光滑的樣條曲面。三角網格細分的規則可以寫入tessellation shader,由硬件自動完成。

 

 

6. 三角網格的細分(subdivision)。

紋理圖像可以存儲更多的信息,例如每個像素可以記錄顏色、法向量、材質、金屬、背景光、散射、高光、透明度、幾何高度、幾何位移等很多信息,用於描繪物體表面的細節。低模加上高模生成的法向量貼圖可以提高渲染質量和速度。

 

 

7. 法向量紋理。

在游戲中,法向量貼圖經常用來增加人臉曲面的幾何細節,特別是皺紋。如圖8和圖9所示,建模師的雕塑完成后,人物皮膚表面比較光滑,應用了法向量貼圖之后,皺紋效果顯現出來,同時皮膚更具質感。

 

 

8. 左幀,沒有用法向貼圖;右側,應用了法向貼圖

 

 

9. 法向紋理用於描述人臉皺紋 ( by Alander Alexei)

二.     虛擬紋理技術

對於高質量、復雜場景的游戲,紋理圖像的數據非常龐大,無法存儲在GPU的內存之中,這時必須借助虛擬紋理技術(Virtual Texture)。例如游戲的場景設定在一個山巒地區,有航拍的地形幾何數據,如圖10所示,同時有不同解析度的紋理數據,例如近景拍攝的照片。在腦海中為地形曲面建立虛擬的坐標,並將所有的照片融合成一張巨大的紋理圖像,覆蓋整個游戲世界,這張籠罩乾坤的紋理圖像,就被稱之為虛擬紋理。

 

 

10. 地形的幾何數據。

虛擬紋理的UV坐標,被稱為虛擬坐標,或者虛擬地址空間。玩家在山巒中穿行的每一剎那,都對應着虛擬地址空間中的某一個點。游戲系統實時跟蹤玩家的行跡,從而得知其任意時刻的虛擬坐標。由於虛擬紋理過於巨大,將其切割成很多小塊,每一小塊被稱為一個頁面(page),如圖11所示。任意時刻,系統只保留與玩家位置臨近的少數頁面在GPU顯存之中,其他的頁面依然放在硬盤之中。當玩家在山巒中游走,系統實時判斷缺失的頁面,依照一定規則(例如 Least Recently Used)淘汰過期無用的頁面。這種動態更新GPU內存中頁面的算法與傳統的虛擬內存算法非常類似。

 

 

11. 地形紋理的虛擬地址空間,每一個方格代表一個頁面。

在現代游戲引擎中,每一幀屏幕畫面被渲染兩次,第一次渲染,系統計算每一個像素的虛擬坐標,由虛擬坐標決定對應的頁面編號,同時根據遮擋、遠近決定紋理mipmap的層次。然后,系統由虛擬坐標(頁面,層次)查找對應的物理坐標,如果有頁面缺失,系統去硬盤查找並調入GPU內存。以ID公司的游戲Rage來舉例說明。圖12是玩家看到的渲染畫面,圖12是系統第一次繪制出的畫面,這里每一個方格對應一個頁面,如此得到每一個像素對應的虛擬紋理坐標。圖14是當前GPU內存中存儲的活躍頁面。

 

 

12. GPU內存中存儲的當前活躍的頁面,物理內存32乘32頁面,ID公司,Rage。

13簡略地給出了虛擬紋理的示意圖。從虛擬地址到物理地址的映射被保存在GPU中的一張查詢表格中(Page Table),這張表格一般是四叉樹結構,也用紋理圖像來表達。維護這張表格,動態更新物理紋理,是虛擬紋理系統的核心任務。

 

 

13. 虛擬紋理系統原理示意圖  (Mayer, Scheiblauer and Mayer)。

一旦渲染當前畫面所需的頁面都在GPU內存之中,系統進行第二次繪制。像素渲染器(pixel shader)可以通過查詢Page Table從虛擬紋理坐標找到物理坐標,從而得到相應的紋理像素,再經過濾波,融合,得到當前像素的顏色值。當然,真實的虛擬紋理系統的算法非常復雜,軟硬件分工也非常考究,這一系統對於整個游戲的質量具有決定性的影響。

 

 

14. Graphine虛擬紋理的演示 (by Al Josha Demeulemeester)。

14展示了Granite SDK 5.0 的虛擬紋理技術。一架雙體飛機在山巒大海上空飛行,系統計算了虛擬紋理坐標,得到對應的頁面編號和細節層次,調度GPU內存,從而實時渲染,得到逼真的繪制效果。

 

三.     幾何圖像方法

虛擬內存技術使得藝術家不再擔心紋理的存儲量,紋理圖像可以被實時流送(頁面調度)放縮(mipmap),游戲設計師不必考慮紋理的內存預算、繪制次數。這里,如果將“紋理”換成“幾何”,得到是Epic Game關於Nanite虛擬幾何技術的廣告詞。

迄今為止,幾何的三角網格表示與紋理圖像表示依然涇渭分明,紋理圖像還是貼附在三角網格之上的。雖然虛擬紋理技術為藝術家極大地解放了紋理設計,但是對於幾何依然於事無補,對於影視級別的高解析度幾何曲面,系統依然無法承擔。那么,為什么不能將幾何數據也虛擬化呢?例如,將龐大的地形數據放在硬盤上,只在GPU Cache中保存當前活躍的頁面,通過實時調度,來保證玩家的體驗?理論上,這種思路沒有任何障礙。

首先,將地形幾何曲面整體參數化,覆蓋整個虛擬地址空間,覆蓋整個虛擬紋理圖像;然后,將整個虛擬地址空間切割成頁面,隨機調度進入GPU內存。但是,在這里遇上了一個瓶頸:三角網格的不規則性。如圖15所示,人臉曲面的組合結構非常不規則,需要存儲頂點的位置信息,同時也要存儲頂點之間的連接關系,如何在GPU內存頁面中表達如此復雜的組合結構,並且從組合結構隨機存取頂點信息,這是一個非常棘手的問題。

 

 

15. 三角網格的不規則性。

一個簡單的解決方案是將三角網格規則化,即將曲面在參數域上用規則的格點重新采樣,用二維矩陣來表示曲面,這就是幾何圖像想法【1】的初衷。

 

 

 

 

 

 

16. 幾何圖像示意圖。

如圖16所示,將大衛王雕像(top left)共形參數化到平面長方形(top right),規則采樣,將三角網格轉換成幾何圖像(middle left)和法向量紋理(middle right),幾何圖像中的每一個像素的紅綠藍顏色值代表相應頂點的三維位置,規則的格點(像素的行列序號)給出了頂點之間的連接關系。幾何圖像代表的曲面顯示在下面一行,左幀是下采樣得到的低模曲面,右幀是原始幾何圖像代表的高模曲面。如此,幾何圖像的LOD和紋理圖像的mipmap  相統一。

在虛擬地址空間,幾何圖像與各種紋理圖像相重合,被分割成同樣的頁面,在內存調度過程中同進同退,同時流送,在繪制過程中同步放縮(mipmap)。

這樣的機制減少了帶寬消耗和GPU內存消耗,提高了幾何與紋理的局域性,更加利於visibility culling。同時,中間計算結果可以存儲成一張虛擬紋理,提高GPU的任務處理的同步性,簡化了繪制流程。當然,應用tessellate shader和procedure decal,可以動態添加更多的幾何與紋理。

幾何與紋理的同步虛擬化,使得游戲設計師和藝術家不再顧慮幾何與紋理的存儲量、內存預算與繪制次數,極大地解放了他們的藝術天性。由此,相信Nanite虛擬微多邊形幾何技術應該類似於虛擬紋理技術與幾何圖像技術的融合。

四.     小結

將幾何數據虛擬化,讓藝術家在虛擬地址空間中縱橫馳騁,的確是划時代的進步。這項技術需要將復雜場景的幾何全局參數化到統一的虛擬地址空間之中,同時使得這一映射帶來的畸變盡量的小。這需要微分幾何的理論來保證。如圖19所示,將歡喜佛映射到平面圓盤,左幀的參數化保持曲面局部形狀不變,右幀的映射保持曲面的面積元不變。保形變換的算法對於任意拓撲曲面都適用,保面積變換的算法對於任意維數的流形都適用。計算共形幾何【2】為保形變換算法奠定了理論基礎,最優傳輸理論為保面積變換奠定了基礎。因此,虛擬幾何圖像的理論已經完備,算法相對成熟。工業界正在開始大規模推廣應用。

 

 

期望虛擬幾何與紋理技術會推進三維工業的進一步發展,例如游戲動漫、VR、AR以及醫學影像。

 

 

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

2】顧險峰,丘成桐,《計算共形幾何-理論篇》,高等教育出版社,2020


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM