天天看點

GPU Gems2 - 7 帶位移映射的細分表面自适應鑲嵌

文章參照該文 https://zhuanlan.zhihu.com/p/38411575

【章節概覽】

這章介紹了如何使用可選的位移貼圖(Displacement Mapping)執行Catmull-Clark細分曲面(Catmull-Clark Subdivision Surfaces)的視圖相關的自适應鑲嵌(Adaptive Tessellation)。使用GPU進行鑲嵌計算,這可以節省圖形總線帶寬,并且比使用CPU快許多倍。

【核心要點】

文中通過重複細分(repeated subdivision)的方法來實作鑲嵌,通過渲染到2D紋理來實作。細分,平坦度測試(Flatness Test)和最終頂點屬性計算使用片元着色器(也稱像素着色器)完成。該方法假設細分曲面控制網格的頂點資料存儲在紋理貼圖中。中間結果也渲染到紋理貼圖并從紋理貼圖讀取,并且最終的鑲嵌結果(位置,法線等)被渲染到一個頂點數組中,以被渲染圖元(render-primitives)如glDrawElements()函數使用。

GPU Gems2 - 7 帶位移映射的細分表面自适應鑲嵌

對立方體的Catmull-Clark細分

GPU Gems2 - 7 帶位移映射的細分表面自适應鑲嵌

自适應鑲嵌(Adaptive Tessellation) vs. 均勻鑲嵌(Uniform Tessellation)

總之,這章介紹了一個結合使用廣度優先遞歸(breadth-first recursion algorithm)細分算法在GPU上鑲嵌細分表面的方法。文中描述了執行平坦度測試、實作細分和計算極限表面屬性所需的着色器。而且解釋了如何修改着色器來添加位移映射的支援,以增加細分表面模型的幾何細節。

【關鍵詞】

Catmull-Clark細分 (Catmull-Clark subdivision)

位移貼圖(Displacement Mapping)

平坦度測試(Flatness Test)

GPU鑲嵌(GPU Tessellation )

自适應鑲嵌(Adaptive Tessellation)