将 Qt3D 用于巨大的地形模型?
Posted
技术标签:
【中文标题】将 Qt3D 用于巨大的地形模型?【英文标题】:Using Qt3D for a huge topography model? 【发布时间】:2020-04-08 12:39:47 【问题描述】:我的场景目前包含一个巨大的地形模型(Mill. Verticies)。现在场景变得更加复杂并包含许多较小的 3D 对象。从 QFrambufferObject(使用 C++/OpenGL)切换到 Qt3D 有意义吗?
-
速度怎么样?
哪种文件格式(Wavefront OBJ、Stanford Triangle Format PLY、STL (STereoLithography))适合?我目前正在将 .hgt 格式的数据加载到向量数组中,然后加载到 QFrambufferObject 中。
使用 Qt3D,是否可以仅加载显卡中当前在视口中可见的图块,或者在摄像机角度发生变化时在它们离开视口后立即删除它们?
【问题讨论】:
【参考方案1】:这很难说。我假设由
切换有意义吗
你的意思是它是否足够快。关于你的两点:
Qt3D 在内部使用assimp 来加载模型,因此如果该库能够加载 hgt 文件,Qt3D 也应该如此。
重新加载是什么意思?它们是否在模型中动态变化?或者你的意思是重新渲染?有QFrustumCullung
,但这似乎仍然呈现整个实体。你知道你的对象是否由多个部分组成吗?因为当 Qt3D 从文件中加载模型(即整个场景)时,我认为它会保持其结构。如果您的模型被拆分为多个独立组件,则QFrustumCulling
可能会提高渲染速度,因为它们在不被查看时不会被绘制。
我个人觉得 Qt3D 与 OpenGL 中的手工渲染器相比要慢一些。但它不断改进,所以如果不花很长时间尝试一下,也许值得一试。此外,Qt3D 的灵活性可能会弥补较慢的渲染速度。
【讨论】:
我刚刚更新了我的问题以使其更加清晰。 QFrustumCullung 听起来很有趣。以上是关于将 Qt3D 用于巨大的地形模型?的主要内容,如果未能解决你的问题,请参考以下文章