[程式] Unreal的nanite分析與簡化(Part 2)
最早的實際可用的clod terrain是96年的Lindstrom
https://dl.acm.org/doi/10.1145/237170.237217
但97年的ROAM一下子席捲遊戲界。
http://www.cognigraph.com/ROAM_homepage/
但其實ROAM是耗費CPU運算,又跟gpu不合的方式。所以實際效能不理想。
https://www.red3d.com/siggraph/2000/course39/S2000Course39SlidesBlow.pdf
2002年的survey,幾個重要方法的簡介,但這些都是現在淘汰的方法。
https://graphics.pixar.com/library/LOD2002/4-terrain.pdf
2002年時,Thatcher Ulrich針對GPU性能開發的Chunked LOD
http://tulrich.com/geekstuff/chunklod.html
http://tulrich.com/geekstuff/sig-notes.pdf
adaptive quadtree, chunked TIN(triangulated irregular network)
重要的是,效能非常好。很多遊戲引擎後來都使用。
連ROAM的原始作者也來搞一個Chunked ROAM
http://www.cognigraph.com/ROAM_homepage/ROAM2/agpchunks.html
但真正橫掃市場的是,Hoppe的Geometry Clipmap
非常容易,效能極佳。
https://developer.nvidia.com/gpugems/gpugems2/part-i-geometric-complexity/chapter-2-terrain-rendering-using-gpu-based-geometry
https://http.download.nvidia.com/developer/GPU_Gems_2/CD/Content/02.zip
shader碼非常簡短
當初還沒有GPU版的時候,沒什麼人注意。
https://hhoppe.com/proj/geomclipmap/
但當gpu版出來時,很快就把terrain市場吃掉。nested grid比adaptive quadtree還要容易
https://hhoppe.com/proj/gpugcm/
其實這個版本在t-junction的處理有點複雜,可以再簡化。
有些引擎用adaptive quadtree的heightfield其實跟nested grid是大同小異,有差別但clipmap要更簡易。
把terrain放給GPU做,浪費triangles都無所謂,CPU盡量不去干擾就是效能的關鍵。
Unity有實驗一個Concurrent Binary Tree 的Terrain,那應該是ROAM整個移到GPU上,很有趣,要如何應用GPU真的是不容易。
https://advances.realtimerendering.com/s2021/Siggraph21%20Terrain%20Tessellation.pdf
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.66.74 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1716474524.A.41E.html
※ 編輯: oopFoo (58.114.66.74 臺灣), 05/23/2024 22:41:59
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
13
32
2
10