我正在用C++編寫遊戲,並且有一個包含許多獨立網格的級別,每個網格都有自己的頂點緩衝區。我使用vmmlib(輝煌的免費gl compat。矢量/矩陣庫)來創建我的平截球體剔骨,並在關卡中對每個網格的邊界球進行測試。可悲的是,我的水平可以包含多達800個網格,並遍歷所有網格,每個幀都很慢。優化代碼的最佳方法是什麼,以便我不必在每次迭代中查看所有網格?在平截頭體內部包圍體積?Optimize Frustum Culling
2
A
回答
4
是邊界對象是要走的路,你應該小心選擇一個合適的邊界體積,例如對於像殭屍一樣在場景中移動的網格,不要躺在圓柱體上是最好的體積,其他更好的體現按立方體(軸對齊或不對齊)。
然後,您創建四叉樹或八叉樹以分層劃分網格數據。
這適用於戶外frustrum撲殺。
對於室內來說,BSP是最好的選擇,因爲你有很多牆來劃分你的空間。您仍然應該對包含多於10個多邊形的網格進行卷綁定。
3
3
我只想補充一點,現在幾天的門戶網站通常優先於BSP或與BSP結合使用,但我沒有足夠的信譽來編輯原始帖子。
相關問題
- 1. 對Frustum Culling感到困惑
- 2. 使用Frustum Culling需要一些幫助來實現VBOs
- 3. Frustum Culling的「雷達方法」:首先進行簡單測試失敗?
- 4. Webgl Frustum視圖
- 5. 3D編程Frustum剔除
- 6. Graphics.Draw *,AutoScroll&Culling
- 7. Orthographic Frustum?
- 8. Three.js中的Frustum
- 9. Optimize ResultSet迭代
- 10. OPTIMIZE UNION SQL QUERY
- 11. Apple LLVM 5.0 pragma optimize
- 12. scipy optimize fmin語法
- 13. 計算中心Of Frustum
- 14. OpenGL Frustum數學理解
- 15. FMIN_COBYLA約束函數(scipy optimize)
- 16. 爲什麼#pragma optimize(「」,off)
- 17. 忽略'optimize'屬性指令
- 18. ATRB在Frustum由8個角落定義
- 19. Mysql停止運行OPTIMIZE命令?
- 20. mysqlcheck的與--optimize但只對MyISAM表
- 21. ruby:optimize => phrase.split(delimiter).collect {| p | p.lstrip.rstrip}
- 22. 什麼時候在mysql中使用OPTIMIZE
- 23. phpMyAdmin的OPTIMIZE TABLE讀取超時
- 24. 問題使用apache commons optimize()in java
- 25. OpenGL ES Frustum的外部幾何體是否也呈現?
- 26. 如何實現Frustum剔除? (當渲染很多塊時延遲)
- 27. 如何確定飛機是否在Three.js相機Frustum
- 28. 如何在Google Optimize的Document Ready中運行Javascript?
- 29. νz(z3opt):無法使用Java API製作Optimize對象
- 30. Scipy&Optimize:最小化示例,如何添加約束?