Qt3D ошибка qSceneLoader при попытке загрузить .gltf

Я пытаюсь загрузить gltf с помощью qSceneLoader

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 ()

Это не приводит к сбою всей программы, но объект не появляется. Как я могу это исправить?


person Tobbor    schedule 11.11.2019    source источник


Ответы (1)


Если я правильно понял - текущая версия Qt3D поддерживает только gltf1.0 в блендере, который я использовал для экспорта 3D-моделей только в gltf2.0. Использование других форматов имеет еще одну проблему под Windows - qt 5.12.5 на этой платформе поставляется без подключаемых модулей assimp (ошибка в установщике: https://bugreports.qt.io/browse/QTBUG-75145), поэтому для использования подобных материалов необходимо установить более новую версию.

person Tobbor    schedule 12.11.2019