首页 > 解决方案 > 尝试加载 .gltf 时出现 Qt3D qSceneLoader 错误

问题描述

我尝试使用 qSceneLoader 加载 gltf

auto sceneObject = new Qt3DRender::QSceneLoader();
sceneObject->setSource(QUrl::fromLocalFile("3D/test.gltf"));
auto sceneTransform = new Qt3DCore::QTransform();
sceneTransform->setTranslation(QVector3D(12.0f, 7.0f, 0.0f));
auto sceneEntity = new Qt3DCore::QEntity(this->rootEntity);
sceneEntity->addComponent(sceneObject);
sceneEntity->addComponent(sceneTransform);

但它给

Qt3D.GLTFImport: no default scene
Qt3D.Renderer.SceneLoaders: class Qt3DCore::QEntity *__cdecl Qt3DRender::Render::LoadSceneJob::tryLoadScene(class Qt3DRender::Render::Scene *,enum Qt3DRender::QSceneLoader::Status &,const class QStringList &,const class std::function<void __cdecl(class Qt3DRender::QSceneImporter *)> &) Failed to import QUrl("file:3D/test.gltf") with errors ()

这不会使所有程序崩溃,但不会出现对象。我该如何解决?

标签: qtqt3dgltfqtwidgets

解决方案


如果我理解正确 - 当前版本的 Qt3D 在搅拌机时仅支持 gltf1.0,我用它来制作 3d 模型仅导出到 gltf2.0。在 windows 下使用其他格式还有另一个问题 - 这个平台上的 qt 5.12.5 没有 assimp 插件(安装程序中的错误:https://bugreports.qt.io/browse/QTBUG-75145),所以它需要安装更新的版本使用这些东西。


推荐阅读