[程式] Unreal的nanite分析與簡化(Part 1)
" Level of Detail for 3D Graphics "
https://lodbook.com/
這本書還有網站,雖然很舊但還是很有用,書雖然不容易買了但pdf還蠻容易找的。Recommended
Quadric Error Metrics(QEM)
http://www.cs.cmu.edu/~garland/Papers/quadrics.pdf
簡單好用,最普及的Simplification的演算法
https://mgarland.org/software/qslim.html
QSlim是實踐QEM的軟體,可研讀。但因為license是GPL,可想直接用的,另外參考
https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification
去github找找適合的。
QuadTree,Binary Triangle Tree(bintree)了解也有幫助。
限制3d mesh是Manifold(有洞沒差)會好處理許多。HalfEdge 好用。
C-LOD要處理的問題是,不同層次的LOD要如何避免t-junction/crack。能處理這問題基本上演算法就成功了。如果避不掉還可以用skirts/flanges處理,但這不理想。
適合GPU的運算法要
1)CPU盡量不要寫新資料到GPU,因為慢。
2)除了coarse occlusion/frustum culling,其它都batch起來交給GPU處理。
3)GPU的branch性能不理想,要多想想如何避開,但避不開也不用想太多。
在gpu興起前,用cpu演算法來減少triangles是王道,但這違反(1)。GPU能處理triangles的數量實在太龐大了,就算多個幾倍,能減少cpu/gpu的互動都是划算的。
PS:如果有什麼不清楚的,問,我寫的大概漏掉太多解釋。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.96.221 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1716457249.A.CFE.html
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
13
32
2
10