Qt3d使用QSceneLoader和Qt5.8

Qt3d使用QSceneLoader和Qt5.8,qt,qt5,qt3d,Qt,Qt5,Qt3d,我尝试使用QSceneLoader加载在外部编辑器中创建的3d场景,但未成功。我总是在加载阶段得到断言。我使用了OBJ模型qt的例子,它很容易加载为QMesh 测试回购 #包括 #包括 #包括 #包括 int main(int argc,字符**argv) { QApplication应用程序(argc、argv); Qt3DExtras::Qt3DWindow*视图=新的Qt3DExtras::Qt3DWindow(); Qt3DCore::QEntity*rootEntity=新的Qt3DC

我尝试使用QSceneLoader加载在外部编辑器中创建的3d场景,但未成功。我总是在加载阶段得到断言。我使用了OBJ模型qt的例子,它很容易加载为QMesh

测试回购

#包括
#包括
#包括
#包括
int main(int argc,字符**argv)
{
QApplication应用程序(argc、argv);
Qt3DExtras::Qt3DWindow*视图=新的Qt3DExtras::Qt3DWindow();
Qt3DCore::QEntity*rootEntity=新的Qt3DCore::QEntity();
Qt3DRender::QSceneLoader*loader=新的Qt3DRender::QSceneLoader(rootEntity);
QObject::connect(加载程序和Qt3DRender::QSceneLoader::状态已更改,
&app,[](Qt3DRender::QSceneLoader::Status s){qDebug()setSource(url);
查看->设置根实体(根实体);
查看->显示();
返回app.exec();
}
Qt3DRender::QSceneLoader::状态(正在加载) 断言:文件io\qsceneloader.cpp第215行中的“entities.size()==1” 调试错误

程序:C:\Qt\Qt5.8.0\5.8\msvc2015\bin\QT5corder.dll 模块:5.8.0 文件:global\qglobal.cpp 电话号码:3070

断言:文件io\qsceneloader.cpp第215行中的“entities.size()==1”

(按“重试”调试应用程序) Qt3DRender::QSceneLoader::Status(Ready)

我用来加载自己的Collada机器人模型,该模型工作正常。重要的几行是:

// Root entity
Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity();
...
// Scene loader
Qt3DCore::QEntity *sceneLoaderEntity = new Qt3DCore::QEntity(sceneRoot);
Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(sceneLoaderEntity);
SceneWalker sceneWalker(sceneLoader);
QObject::connect(sceneLoader, &Qt3DRender::QSceneLoader::statusChanged, &sceneWalker, &SceneWalker::onStatusChanged);
sceneLoaderEntity->addComponent(sceneLoader);

<> P> >用你的Objo文件试试.< /p>你能通过C++访问Collada文件的骨骼吗?我只是指通过Qt3D ApLogalDa DOM是C++。所以你可以很容易地和Qt.but一起使用它,它能与QT3D集成吗?我只需要一种导入网格和访问/操作SCONDONQT是C++的方法。所以你问你是否可以在C++中集成C++。C++?
// Root entity
Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity();
...
// Scene loader
Qt3DCore::QEntity *sceneLoaderEntity = new Qt3DCore::QEntity(sceneRoot);
Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(sceneLoaderEntity);
SceneWalker sceneWalker(sceneLoader);
QObject::connect(sceneLoader, &Qt3DRender::QSceneLoader::statusChanged, &sceneWalker, &SceneWalker::onStatusChanged);
sceneLoaderEntity->addComponent(sceneLoader);