Future of Qt3D C++ API
-
At moment I'm again looking for a (small) scene-graph/3D-engine "thing" that works nicely with Qt.
I already got a lot of experience with some libraries that fit this category.
(I just did a update to the wiki, which more or less reflects my knowledge: http://qt-project.org/wiki/Using_3D_engines_with_Qt )Some of them are giant utility pool, with so much stuff that I don't need (and don't want to understand).
Half of them are dead-project and most of the rest are worse documented.So, about Qt3d ... awhile ago I did a small hobby-project with v1.0 (qt4.*, pure C++) ... beside the usual issues with jumping into a bigger/unfamiliar API, it worked nicely for me ...
I only got one point where my needs fought against the API-Design:
I had the need to generate a geometry that has a fixed maximum number of vertices and indices ... BUT dynamic and changing values and the number of "active indices" ...
Figuring out how to change vertices-data is the first point, I think function naming is really worse at this point (setting value is possible by the non-"...At" getters, that's by no way intuitive)
Figuring out how to do dynamic indices gets really trick ;) ... if I remember correctly, I did it by subclassing the node-class and storing indices there (to hook into paint-virtual-function and do some magic) ... oh, and I think I had to set dummy-indices in geometry to force uploading of vertices data ...So, back to the topic:
- Is there anywhere a documentation what would be the next developments? (if Qt3D would be reactivated)
- Is a refactoring of the C++ API possible/planned?
- ... if a refactoring would be OK (and I would find some time) ... is the starting point a bug-entry? or a contribution? or something else?
-
Qt3D is back online, AFAIK. See "this":http://comments.gmane.org/gmane.comp.lib.qt.devel/8808 and "this":http://comments.gmane.org/gmane.comp.lib.qt.devel/9878.
Quoting Sean, who is maintainer for OpenGL stuff in Qt Project:
[quote]James Turner and I have been through the Qt3D source code to review it with an
eye for flexibility, performance, ability to deal with the plethora of modern
rendering techniques, and potential integrations with 3rd party systems (OSG,
OGRE, Bullet, Havok etc.).Although the current Qt3D gives a great way to produce 3D scenes quickly and
easily we have identified a few deep-rooted design decisions that need to be
addressed before we can make a release. This is because some aspects of the
API will need to change to allow us to make these changes. Rather than rushing
things and risk getting it wrong for Qt 5.1, we are instead laying the ground
work within QtGui for 5.1 and will work hard to make a Qt3D release for Qt 5.2
later this year.[/quote] -
I already expected that some similar discussion must be somewhere ... the fragmentation of Qt-community-discussions is really cumbersome ... (mailing-list, "forum", JIIRA, irc, codereview-comments, ...)
Btw. where would be the best place to post such a usecases like mine about "better API for allowing dynamic geometry updating"?
... thought, I wrote it here ... I could create a JIIRA suggestion- or bug-entry ... or use one or more of the other communication-channels ... -
For a start, best is to post to "development":http://lists.qt-project.org/mailman/listinfo mailing list. All Qt developers follow that list, and that is where serious discussions take place.
This forum here (qt-project.org) is rarely visited by Qt devs (with some notable exceptions, though :)), they are too busy making Qt beautiful.
-
So, uhm. How dead is this horse, really? I'm in need of some simple 3D classes that let me integrate custom OpenGL rendering and (optimal) QGraphicsScene using a QGLWidget.
-
It's pretty alive as you may see from "activity history of qt3d repo":https://qt.gitorious.org/qt/qt3d/activities. Also, you may browse development mailing lists archive for posts by Sean Harmer. "October 2014":http://lists.qt-project.org/pipermail/development/2014-October/author.html#15296, for example.
-
[quote author="kiro" date="1414747715"]So, uhm. How dead is this horse, really? I'm in need of some simple 3D classes that let me integrate custom OpenGL rendering and (optimal) QGraphicsScene using a QGLWidget.[/quote]
Qt 5.3 and 5.4 pack in a lot of improvements to basic OpenGL support (the new QOpenGLWidget, a lot of OpenGL convenienve and support functions).
The Qt3D module itself will still not be available in 5.4 (although you can compile and include it yourself). It should be included in 5.5.
-
Nice. I will try to clone it and see what the state is. Thanks.
Hmmm. Seems like QGraphicsEmbedScene was dropped...I'm using 5.3.2, sadly still without QOpenGLWidget...