如何访问 QSceneLoader 创建的实体树?
How can I access the entity tree created by QSceneLoader?
我正在尝试访问使用 QSceneLoader 加载的网格的几何体和 material,但我不知道如何访问。
doc 表示
Given a 3D source file, the Qt3DRender::QSceneLoader will try to parse it and build a tree of Qt3DCore::QEntity objects with proper Qt3DRender::QGeometryRenderer, Qt3DCore::QTransform and Qt3DRender::QMaterial components.
但它没有说明如何访问该树。 .component() 函数似乎是一个解决方案,但它需要一个我没有的实体名称。
我找到了一个文件,其中包含使用 .component() 函数测试 QSceneLoader 的文件(此处)[https://code.woboq.org/qt5/qt3d/tests/auto/render/qsceneloader/tst_qsceneloader.cpp.html],但它们似乎是手动构建实体树之类的。
我可以使用 Qmesh Class,但是 QSceneLoader 支持更多的文件格式,包括我想要支持的 fbx 和 glTF。
如果这不可能,也欢迎使用替代方案。
我终于在这个 post 中找到了可行的解决方案:
Qt3d Using QSceneLoader with qt 5.8
SceneWalker 完全符合我的需要。
我正在尝试访问使用 QSceneLoader 加载的网格的几何体和 material,但我不知道如何访问。
doc 表示
Given a 3D source file, the Qt3DRender::QSceneLoader will try to parse it and build a tree of Qt3DCore::QEntity objects with proper Qt3DRender::QGeometryRenderer, Qt3DCore::QTransform and Qt3DRender::QMaterial components.
但它没有说明如何访问该树。 .component() 函数似乎是一个解决方案,但它需要一个我没有的实体名称。
我找到了一个文件,其中包含使用 .component() 函数测试 QSceneLoader 的文件(此处)[https://code.woboq.org/qt5/qt3d/tests/auto/render/qsceneloader/tst_qsceneloader.cpp.html],但它们似乎是手动构建实体树之类的。
我可以使用 Qmesh Class,但是 QSceneLoader 支持更多的文件格式,包括我想要支持的 fbx 和 glTF。
如果这不可能,也欢迎使用替代方案。
我终于在这个 post 中找到了可行的解决方案:
Qt3d Using QSceneLoader with qt 5.8
SceneWalker 完全符合我的需要。