将 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 用于巨大的地形模型?的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D中的地形转成模型

基于DEM的数字地形分析都有哪些应用

全球数字高程数据(DEM)详解,还有地形晕渲等高线等干货

全球水深地形模型ETOPO1

全球水深地形模型ETOPO1及下载使用

unity使用fbx export导出地形