This question already has an answer here:
Qt3d Using QSceneLoader with qt 5.8
(1个答案)
7个月前关闭。
我正在尝试访问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个答案)
7个月前关闭。
我正在尝试访问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。
如果这不可能,则也可以选择替代方案。
最佳答案
我终于在这篇文章中找到了一个可行的解决方案:
Qt3d Using QSceneLoader with qt 5.8
SceneWalker完全可以满足我的需求。
10-07 15:32