qt - 尝试加载 .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 ()
这不会使所有程序崩溃,但不会出现对象。我该如何解决?
解决方案
如果我理解正确 - 当前版本的 Qt3D 在搅拌机时仅支持 gltf1.0,我用它来制作 3d 模型仅导出到 gltf2.0。在 windows 下使用其他格式还有另一个问题 - 这个平台上的 qt 5.12.5 没有 assimp 插件(安装程序中的错误:https://bugreports.qt.io/browse/QTBUG-75145),所以它需要安装更新的版本使用这些东西。
推荐阅读
- c# - 是否有像 DEBUG 或 TRACE 一样为“优化代码”定义 C# 编译器?
- c - 从二维数组中删除数组(行) - C 编程
- c# - 代码的发布和调试版本的行为不一致
- javascript - 在页面标题(浏览器选项卡)中显示歌曲的元数据?
- jq - jq:错误(在
:131): 不能遍历字符串(“文件”) - c++ - 与现代 C++ 中的非侵入式容器相比,侵入式容器是否仍然具有性能优势?
- javascript - WebStorm 不记得类型提示
- c# - 在浏览器刷新或计算机重新启动后永久存储 Swagger UI 令牌
- python - 家庭作业项目。无法弄清楚如何通过 flask_sqlalchemy 求和值。烧瓶扔'AttributeError:'BaseQuery'对象没有属性'sum''
- flutter - 使用颤振无法在帖子请求中加载帖子