簡體   English   中英

優化Frustum剔除

[英]Optimize Frustum Culling

我正在用C ++編寫游戲,並且有一個由許多單獨的網格組成的關卡,每個網格都有自己的頂點緩沖區。 我正在使用vmmlib(輝煌的自由gl compat。矢量/矩陣庫)來創建我的視錐體剔除者並對照該級別中每個網格的邊界球體進行測試。 遺憾的是,我的關卡可以包含多達800個網格,並且迭代遍歷所有網格,每個幀都很慢。 什么是優化代碼的最佳方法,以便我不必在每次迭代時查看所有網格? 截頭體內的邊界體積?

是邊界對象是要走的路,你應該注意選擇足夠的邊界體積,例如對於像機器人一樣在場景中移動的網格而不是躺在圓柱體上是最好的體積,其他更好地用立方體表示(軸是否對齊)。

然后創建四叉樹或八叉樹以分層划分網格數據。

這適用於戶外截頭剔除。

對於室內,BSP是最好的方式,因為你有很多牆壁可以分隔你的空間。 您仍然應該對包含10個以上多邊形的網格進行體積限制。

二進制空間分區或其表親四叉樹

我只想補充一點,現在一天門戶網站通常比BSP更受歡迎,但我沒有足夠的聲譽來編輯原始帖子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM