我正在用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:最小化示例,如何添加约束?