[程式] Unreal的nanite分析與簡化(Part 1)

看板GameDesign (遊戲設計)作者 (3d)時間6月前 (2024/05/23 17:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/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
文章代碼(AID): #1cJmyXp- (GameDesign)
文章代碼(AID): #1cJmyXp- (GameDesign)