Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt QML and 3d: are these two frameworks the same?

Anyone who has experimented with Qt QML and 3D OpenGL, I am interested in 2 frameworks I've read about, but it is not clear to me if in fact they are the same framework. The most interesting of the two is outlined in this Qt Developer Days 2013 video presentation by Krzysztof Krzewniak:

http://www.youtube.com/watch?v=29wCpA0DBZI

While very interesting, unfortunately I cannot find anywhere else online some source code for this, or even the name of the framework discussed.

There is QtQuick3d:

http://doc.qt.digia.com/qt-quick3d-snapshot/

However, I cannot tell if in fact this is describing the same framework from Dev Days or if they are separate (and apparently somewhat similar) frameworks? My initial look at the API in comparison to the video suggests they are different, which seems rather redundant to have 2 significant projects in the Qt community attempting to do the same thing.

Can anyone with some knowledge in this area of QML provide some pointers here?

like image 526
johnbakers Avatar asked Mar 20 '23 18:03

johnbakers


1 Answers

Right, so let us start with some history behind...

Qt was initially a 2D framework for rendering computer graphics UI for simple desktop applications.

Qt3D was developed earlier than qml became mature as an extension to the 2D world provided by the QtGui module, or even QtOpenGL.

It was a 3D Qt api for rendering 3D content on the screen. It had different aspects to deal with 3D objects, build them, put them on the screen, compute intersection, and so on.

The idea was to bring easy to create application concept into Qt rather than always going through QtOpenGL or lower-level API for creating games, simulators, cad applications, and so on.

enter image description here

Right, when QML came out and kept maturing, the Qt3D contributors in Brisbane thought that it would be nice to put a QML API on top of the existing Qt3D C++ API for easy use in QML application. That is how we come to QtQuick3D.

enter image description here

When Nokia decided to shut the Brisbane office done, the Qt3D module pretty much became unmaintained and abandoned only getting a few bugfixes from the community every now and then.

There is some work in progress by KDAB to re-architecture and re-design the module, but it is not mature yet, and it can be found in a separate branch.

The video you are referring to is not dealing with the unmaintained Qt3D module. Rather, it tries to build 3D based on the new scene graph introduced in Qt. Since, there is no Qt3D module working nicely with the new SG in Qt 5, people become pragmatic and move on. That is what you see in the video.

Now, as you can see this is not quite a duplication, but... In the future, the new Qt3D architecture might be acting better with the new scene graph. In fact, KDAB has put a lot of effort into bringing the OpenGL support into QtGui up to real world.

That was the foundation for the Qt3D module which will probably be used in the future (hopefully) by 3D applications written based on Qt, but in the meantime... the video shows how to build hardware accelerated 3D UI based on what we have today.

like image 58
lpapp Avatar answered Apr 02 '23 20:04

lpapp