Tessellation (曲面细分) Displacement Mapping (贴图置换)
DirectX 11 Tessellation (曲面細分)—什么是 Tessellation (曲面細分) ?
它為什么可以起到如此關鍵的數據?
隨著近期人們對 DirectX 11 的議論紛紛,你可能已經聽說了有關 DirectX 11 最大新特性 Tessellation (曲面細分) 的大量介紹。作為一個概念。 Tessellation (曲面細分) 非常直截了當,就是處理一個多邊形分成諸多小碎片。
可是為什么這種處理方式可以備受矚目呢?
它是怎樣幫助提升游戲畫質的呢?本文中,我們將分析 Tessellation (曲面細分) 之所以可以為 PC 3D 圖形帶來深刻變革的原因,并闡釋一下 NVIDIA? GeForce? GTX 400 系列 GPU 怎樣提供突破性的 Tessellation (曲面細分) 性能。
從本質上來講, Tessellation (曲面細分) 是一種將多邊形分解成更加細小的碎片以提升幾何逼真度的方法。
比如,假設處理一個正方形并將其沿對角線切開,那么實際上就是將這一正方形“曲面細分”成為兩個三角形。就其本身而言, Tessellation (曲面細分) 并不能提升半點逼真度。
比如,在游戲中。一個正方形被渲染成為兩個三角形還是兩千個三角形都是無關緊要的。
僅僅有在使用新三角形來描寫敘述新信息時, Tessellation (曲面細分) 才干提升逼真度。
| 當一個置換貼圖 (左) 應用到平面上時,所生成的表面 (右) 就會表現出置換貼圖中所編碼的高度信息。 | |
運用新三角形最簡單、最流行的方式就是有“ Displacement Mapping (貼圖置換) ”之稱的技術。置換的貼圖就是一個存儲高度信息的紋理。當應用到某一表面上時,該貼圖讓這一表面的頂點可以依據高度信息調高或調低。 比如,使用一塊大理石板,圖形藝術家可以通過“置換”頂點的方法打造雕刻效果。還有一種流行技術是將置換的貼圖應用到地形上,以雕琢出彈坑、峽谷以及山峰。
正如 Tessellation (曲面細分) 一樣。 Displacement Mapping (貼圖置換) 已經存在非常長一段時間了。可是直到近期,它才真正流行起來。
究其原因,是由于想要讓 Displacement Mapping (貼圖置換) 有效。表面必須由大量頂點構成才行。以大理石雕刻為例。假設大理石塊由八個頂點構成。那么在它們之間便沒有可以生成龍形浮雕的相對置換量了。僅僅有在基礎網格中具備足夠多的頂點用以描繪新形狀時才可以生成仔細的浮雕。
從本質上來講, Displacement Mapping (貼圖置換) 須要 Tessellation (曲面細分) 。反之亦然。
隨著 DirectX 11 的問世。 Tessellation (曲面細分) 與 Displacement Mapping (貼圖置換) 最終實現了珠聯璧合。廣大開發商已經增加到這一陣營其中。
像《Alien vs. Predator》以及《地鐵2033》這種流行游戲均採用了 Tessellation (曲面細分) 來生成外觀平滑的模型,而開發商Valve公司與 id Software 已經完畢了一些前景看好的工作,將這些技術應用到其現有的游戲人物身上。
| 當一個粗糙的模型 (左) 經過 Tessellation (曲面細分) 處理后,就會生成平滑的模型 (中間)。當應用了貼圖置換之后 (右)。游戲人物便接近電影般的逼真度了。 ? Kenneth Scott、id Software版權全部。2008 |
由于DirectX 11 Tessellation (曲面細分) 流水線是可編程的。因此可以用它來解決大量圖形問題。讓我們來看一看四個實例。
完美凹凸貼圖
從本質上來講,Displacement Mapping (貼圖置換) 可被用作現有凹凸貼圖技術的暫時替代技術。比如法線貼圖等當前的技術通過更佳的像素渲染,可以創造出凹凸表面的假象。全部這些技術都僅僅在特定情況下有效,而且在其起效時并非全都那么逼真。以下以凹凸貼圖中較為先進的視差遮蔽貼圖為例進行說明。
盡管它可以生成重疊的幾何假象,可是它僅僅能在平面上以及物體內部起作用 (見上圖)。真正的 Displacement Mapping (貼圖置換) 不存在這些問題,可以從全部視角生成精確的結果。
更加平滑的人物
| 無需藝術家手工輸入,PN-Triangles 可實現游戲人物的自己主動平滑。幾何與光照逼真度均可以得到提升。 |
細化算法是 Tessellation (曲面細分) 的還有一個自然搭檔。細化算法可處理粗糙模型,借助于 Tessellation (曲面細分) 。該算法可創建外觀更加平滑的模型。PN-Triangles (也稱作N-patches) 就是一個流行的實例。PN-Triangles算法可以將低分辨率模型轉化為彎曲表面,該表面然后可以被又一次繪制成由“高精曲面細分”的三角形所組成的網格。在當今游戲中,我們覺得理所當然的大量視覺假象都可以借助此類算法來消除。這些視覺假象包含人物關節處呈現塊狀圖案、汽車輪子呈多邊形外觀以及面部特征粗糙。比如,《Stalker: Call of Pripyat》中就使用了 PN-Triangles 來生成外表更平滑、更自然的人物。
無縫的精細度
在具有大型、開放式環境的游戲其中。用戶可能會注意到,遠處的物體常常會時而出現、時而消失無。這是由于游戲引擎正在不同精細度 (LOD) 之間進行切換,以限制幾何工作負荷。由于須要為同一模型或環境保存多個版本號的數據。所以直到那個時候,都還沒有一種簡單的方法可以連續改變精細度。
動態 Tessellation (曲面細分) 通過即時改變精細度。攻克了這一問題。比如。當遠處的建筑物首次映入眼簾時,或許僅使用10個三角形來渲染它。隨著用戶視野的拉近,該建筑物的顯著特征開始浮現,很多其它三角形則被用來描繪窗子和屋頂等細節。當你最終到達門口時,單單舊式銅質門把手一項就動用了一千個三角形來進行渲染;Displacement Mapping (貼圖置換) 仔細地雕刻出了每一道凹槽。
由于消除了動態 Tessellation (曲面細分) 對象的時隱時現。因此游戲環境如今可以擴展至差點兒無限的幾何精細度。
收放自如的藝術品
對開發商來說, Tessellation (曲面細分) 大幅提升了其內容創作流水線的效率。
在描寫敘述其使用 Tessellation (曲面細分) 的動機時。Valve 公司的 Jason Mitchell 表示:“我們對可以編輯游戲內容這一點非常感興趣,由于這樣就讓我們可以實現縮放了。
也就是說。我們想要僅僅制作一次模型,然后便可以將其提升至電影畫質…反之。我們想要可以自然地減少游戲內容的畫質,以滿足在特定系統上實現實時渲染的須要。
”這種僅創建一次模型便可在各種平臺上使用的能力意味著縮短了開發時間。對PC游戲玩家來說,這意味著在其GPU上可以實現最高的圖像畫質。
GeForce? GTX 400 GPU(圖形處理器)怎樣處理 Tessellation (曲面細分)
傳統的GPU(圖形處理器)設計採用單個幾何引擎來運行 Tessellation (曲面細分) 任務。這個方案是相似早期的GPU設計,此類設計均使用利用單個像素流水線來運行像素著色。
在認識到像素流水線是怎樣從一個單元發展為多個并行單元以及這一進展是怎樣在3D逼真度方面大放異彩之后,我們便從一開始就設計了自己的并行 Tessellation (曲面細分) 架構。
GeForce? GTX 400 GPU (圖形處理器) 擁有最多15個 Tessellation (曲面細分) 單元,每個單元都具備針對頂點拾取、 Tessellation (曲面細分) 以及坐標變換的專用硬件。
它們利用4個并行光柵引擎來進行運算,這些引擎可將新近曲面細分的三角形轉換成精細像素流以便用于著色。這樣一來, Tessellation (曲面細分) 的性能便實現了巨大突破。持久性能達每秒16億三角形以上。與最快的同類產品相比,GeForce? GTX 480 的速度最高可達7.8倍。
這一數據由獨立站點Bjorn3D所測得。
結語
經過多年的重復試驗, Tessellation (曲面細分) 最終在PC上獲得了成功。
《地鐵 2033》等優秀游戲已經展現了 Tessellation (曲面細分) 的潛力。最終, Tessellation (曲面細分) 將成為同像素著色一樣關鍵、一樣不可缺少的技術。
由于意識到了 Tessellation (曲面細分) 的重要性。NVIDIA? 公司從一開始便打造并行 Tessellation (曲面細分) 架構,推動這一進程。
成果就是 GeForce? GTX 400 系列 GPU (圖形處理器)—幾何逼真度與 Tessellation (曲面細分) 性能的真正突破。
轉載于:https://www.cnblogs.com/gcczhongduan/p/5271230.html
總結
以上是生活随笔為你收集整理的Tessellation (曲面细分) Displacement Mapping (贴图置换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银狐影视如何?
- 下一篇: 嵌入式linux学习笔记1—内存管理MM