其他分享
首页 > 其他分享> > c-在Qt3D中导入对象不起作用,但是没有错误消息

c-在Qt3D中导入对象不起作用,但是没有错误消息

作者:互联网

我有一个导入STL文件格式的Qt3D应用程序:

m_sceneLoaderEntity = new Qt3DCore::QEntity();
m_sceneLoaderEntity->setObjectName("New imported entity");

Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(m_sceneLoaderEntity);

sceneLoader->setSource(fileUrl); // fileUrl is input

m_sceneLoaderEntity->addComponent(sceneLoader);

我的应用程序的构建和运行对Qt 5.9.0、5.9.1、5.9.2、5.9.3和5.9.4没有任何问题.到现在为止还挺好.

我的应用程序可以使用Qt 5.9.5、5.9.6和Qt 5.11.0很好地构建,但是在运行时,它无法导入STL文件,并且不给出任何错误消息!有人可以给我提示吗?

我了解Qt3D使用assimp导入STL文件.我试图用Qt 5.9.4替换Qt 5.11.0 assimp动态库,即libassimpsceneimport.so,但是它不起作用:

m3g1dd@linux:~/Qt5.11.0/5.11.0/gcc_64/plugins/sceneparsers> ls -lhrtci
total 17M
1613482572 -rwxrwxr-x 1 m3g1dd m3g1dd 172K Jun 10 08:41 libgltfsceneimport.so
1613482571 -rwxrwxr-x 1 m3g1dd m3g1dd 226K Jun 10 08:41 libgltfsceneexport.so
1613596422 -rwxr-xr-x 1 m3g1dd m3g1dd 6.8M Oct  8 10:00 libassimpsceneimport.so.Qt5.9.4
1613482570 -rwxrwxr-x 1 m3g1dd m3g1dd 9.8M Oct  8 10:00 libassimpsceneimport.so

解决方法:

我下载并安装了Qt 5.11.2,我的STL导入代码可以正常工作,如下所示.但是导入的STL的环境色,漫反射色和镜面反射色默认情况下设置为白色,我认为这与以下提到的assimp library问题有关:

https://bugreports.qt.io/browse/QTBUG-69385

https://github.com/assimp/assimp/issues/2059

Imported STL

标签:c,qt,qt3d
来源: https://codeday.me/bug/20191012/1901283.html