[Development] Stand alone scene graph module

Sletta Gunnar Gunnar.Sletta at digia.com
Wed Apr 3 11:25:29 CEST 2013


On Apr 3, 2013, at 10:51 AM, Dmitrii Volosnykh <dmitrii.volosnykh at gmail.com>
 wrote:

> Hi, Gunnar.
> 
> At first glance scenegraph module and Qt3D have similar feature sets.

Not at all :)

The scene graph in Qt Quick is a very tiny api, meant to formally structure OpenGL graphics calls so that we can optimally render a 2D interface with bling (it supports 3D transformations and geometry, but it doesn't manage 3D geometry per se). The primary purpose is to allow sorting, reordering of the GL calls and 

It is meant to be tiny and fast when supporting the usecase of highly dynamic, lots of small things chaning all the time, with bling and some light-weight 3D. It will do worse when trying to render something like google-earth :)

Qt3D in its current state is more like QGraphicsView. It puts items into a scene and renders them without any logic to try to improve on the performance. It does contain a scene graph, but it is purely procedural in its execution. Sean Harmer posted a mail a while back outlining how he envisions Qt3D evolving into a proper 3D engine, something which will be suitable for larger 3D apps. This solves a different usecase from what the scene graph and will not be suitable for UI rendering, for instance.

> In what relations are they? As scenegraph depends on QtQuick and Qt3D
> is the part of the former one I may guess that scenegraph depends
> indirectly on Qt3D, but you mentioned that it now depends only on
> QtCore and QtGui... Could you please elaborate on this?

The scene graph in Qt Quick has never depended on Qt3D. 

> How these two
> similar in functionality modules are planned to co-exist in Qt
> framework as a whole?

They serve completely different purposes, so I don't see a problem here. However, it is currently placed in the scenegraph-playground repo because I don't know where it would actually fit. If we made it a first-class module, it would not be usable together with QtQuick for instance, so that needs some consideration.

cheers,
Gunnar

> 
> Regards,
> Dmitrii.
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development




More information about the Development mailing list