[Development] Stand alone scene graph module

Rutledge Shawn Shawn.Rutledge at digia.com
Wed Apr 3 12:19:11 CEST 2013


On 3 Apr 2013, at 11:25 AM, Sletta Gunnar wrote:

> 
> 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.

What happens when you try to combine the two, are they just in layers?  For example I tried to make a piano app as a multi-point touch demo, and found it difficult to make fake semi-3D-looking piano keys.  One can rotate a Rectangle in any direction around any axis, so I thought I could have a 90-degree rotated rectangle for the front of the key, and a rotated woodgrain texture for the sides.  But when you rotate to 90 degrees, it disappears, even if you then rotate the entire key by a few degrees.  I got something a little better by tweaking the angles slightly and tweaking the length heavily, but it didn't scale well.  So the ideal might be to render using a 3D model, but every key top should have a MultiPointTouchArea.  Or else the 2D scene graph should handle the rotated cases more realistically; is that doable, or is there not much hope because we want to avoid using perspective rendering in typical 2D apps?




More information about the Development mailing list