Thanks Oleg,

that gives me a good hint.
In fact, even better is the example in

qt3d\tests\manual\assimp-cpp

Which exactly does what I need:
It creates the entity tree with material, GeometryRenderer etc.
from a interactively loaded model with sceneloader and lists the entity tree recursively.

This as an example in the docu would have helped a lot.

All the best, JD


Oleg Evseev

Hi,

Take a look on qt3d\tests\manual\assimp example, from there you will
understand how to find specific entities or components of scene loader tree.

---
With regards, Oleg

2017-07-11 12:32 GMT+03:00 <d...@john-online.info>:



Hi

I use QT5.8 C++ API.
I know how to create and display models with vertex and index buffers.
How can I access data of a model loaded with Sceneloader() ?
I.e. I load an arbitrary model and afterwards want to read out the
vertices, indices, materials etc. in order to
process this information.

Issue:
When I create my own models via my own buffers I have a hierarchy of
entities & components which shows my creations (material/color,
transformation, vertices, indices, textures)

Howevr, when I load an object like .obj or .ply, I always only see the url
referrer to the source.
There is no entity tree other than the single child with the url apart
from a trivial root node.
Is this intended or a bug? Can this be related to the OS/VM? (hardly
imaginable though)


=> How can I access the actual object data?



Codewise i do the following:

             m_meshEntity = new Qt3DCore::QEntity();
             m_rootEntity = new Qt3DCore::QEntity();

             Qt3DRender::QSceneLoader *loader = new
Qt3DRender::QSceneLoader(m_meshEntity);

             QString fileName = "../3dModels/someModel.obj";
             QUrl url = QUrl::fromLocalFile(fileName);

             QObject::connect(loader, &Qt3DRender::QSceneLoader::sta
tusChanged,
this, [](Qt3DRender::QSceneLoader::Status
s){ qDebug() << s; return false;});


             loader->setSource(url);

             m_meshEntity->addComponent(loader);

             m_meshEntity->setParent(m_rootEntity);
             view->setRootEntity(m_rootEntity);
             view->show();

Then, m_meshEntity/m_rootEntity are trivial as described above. Its
visible in the 3d window (view) but trivial from the "programmatical"
content.


_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest




_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to