如何访问QSceneLoader创建的实体树?

时间:2019-05-24 17:38:38

标签: c++ qt qt3d

我正在尝试访问装有QSceneLoader的网格的几何形状和材料,但我不知道如何。

doc

  

考虑到3D源文件,Qt3DRender :: QSceneLoader将尝试对其进行解析,并使用适当的Qt3DRender :: QGeometryRenderer,Qt3DCore :: QTransform和Qt3DRender :: QMaterial组件来构建Qt3DCore :: QEntity对象树。

但是它没有说明如何访问该树。 .component()函数似乎是一种解决方案,但它需要一个我没有的实体名称。

我找到了一个使用.component()函数(在此)[https://code.woboq.org/qt5/qt3d/tests/auto/render/qsceneloader/tst_qsceneloader.cpp.html]对QSceneLoader进行测试的文件,但它们似乎是手动构建实体树或类似的东西。

我可以使用Qmesh类,但是QSceneLoader支持更多的文件格式,包括我想支持的fbx和glTF。

如果这不可能,那么也可以选择另一种方法。

1 个答案:

答案 0 :(得分:0)

我终于在这篇文章中找到了可行的解决方案:

Qt3d Using QSceneLoader with qt 5.8

SceneWalker完全可以满足我的需求。