作者oopFoo (3d)
看板GameDesign
标题[程式] Unreal的nanite分析与简化(Part 2)
时间Thu May 23 22:28:22 2024
最早的实际可用的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://webptt.com/cn.aspx?n=bbs/GameDesign/M.1716474524.A.41E.html
※ 编辑: oopFoo (58.114.66.74 台湾), 05/23/2024 22:41:59