如何在加载新活动时防止opengl上下文丢失



我正在开发一个3d安卓应用程序,我需要在两个不同的活动中进行渲染(一个活动中为普通渲染,另一个活动为VR渲染)。我可以发现,一旦我从一个活动转移到另一个活动,我的三维模型数据(顶点、索引)就会丢失。如果我回到第一个活动,我必须从文件中重新加载整个数据。这个具体问题有什么解决办法吗?此外,哪种格式是我可以保存模型以获得最快加载速度的最佳格式。

您可以使用GLSurfaceView.setPreserveEGLContextOnPause。虽然不能保证支持保留EGL上下文,但它在现代Android设备上广泛可用。

至于模型加载速度,你正在危险地进入"基于观点"的领域。但是,完全按照设备上GLES缓冲区的预期布局的模型格式可以直接从磁盘流式传输,而无需任何修改——因此,这可能是您最快的加载解决方案。然而,许多开发人员使用其他格式(例如FBX/OBJ/等),因为它们更灵活,并且可以直接从DCC工具导出。

最新更新