Kri*_*eth 8 opengl batching batch-processing culling occlusion-culling
我目前正在升级和重组OpenGL渲染引擎.该引擎用于可视化建筑数据的大场景(具有内部的建筑物),并且对象的数量可以变得相当大.与任何建筑物一样,墙内有很多被遮挡的物体,你自然只会看到与你在同一房间内的物体,或者如果你在外面则看到外部物体.这留下了大量的物体,应该通过遮挡剔除和截锥体剔除来遮挡.
同时,有许多可以在渲染块中进行批处理的重复几何体,以及可以使用实例渲染渲染的许多对象.
我看待它的方式,很难以最佳方式组合渲染和剔除.如果在同一个VBO中批处理太多对象,则很难剔除CPU上的对象以跳过渲染该批处理.同时,如果你跳过cpu上的剔除,GPU会在看不到它们时处理很多对象.如果为了更容易地剔除CPU而过度跳过批处理,则会有不必要的大量渲染调用.
我已经对现有技术和理论进行了一些研究,以了解如何在现代图形中解决这些问题,但我还没有找到任何具体的解决方案.一位同事和我想出的想法是将批次限制在相对靠近彼此的物体上,例如房间内或半径范围内的所有椅子.这可以通过使用oct-trees来简化和优化.
有没有人对现有的现代图形引擎中的场景管理,剔除,批处理等技术有任何指示?
互联网上有很多关于视锥和遮挡剔除的信息.其中大部分来自游戏开发者.以下是一些可以帮助您入门的文章列表:
我的(非常快)渲染器的工作方式类似于:
正如"Full Frontal Nudity"已经说过:没有完美的解决方案.
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |