我正在开发适用于非常大的场景显示的 3D 引擎。渲染本身的设备(截头剔除,遮挡剔除等),我想知道场景管理的最佳解决方案是什么。
数据是作为一个巨大的 3D 网格列表给出的,它们之间没有任何关系,所以我无法生成门户,我想......
主要目标是能够在 RAM 较低(500MB-1GB)的系统上运行该引擎,并且加载到其中的场景非常大,可以包含数百万个三角形,这会导致非常密集的内存使用。我现在实际上正在使用一个松散的八叉树,在加载时构建,它在中小型场景上运行良好,但是许多场景太大而无法完全适应内存,所以我的问题来了:
您将如何处理场景以动态(并且理想地无缝地)加载和卸载块,以及您将根据什么来确定是否应该加载/卸载块?如果需要,我可以创建自定义文件格式,因为正在使用已知 3D 创作工具上的自定义导出器导出场景。
重要信息:许多场景无法有效遮挡,因为它们的构造。示例:一个非常大的管网,因此没有太多的遮挡,但元素数量非常多。