The Qt 3D Studio Runtime provides C++ and QML APIs for integrating Qt 3D Studio scenes into Qt applications, as well as the viewer application that is used in combination with the Qt 3D Studio application during the design phase.
Below is an example scene in the Qt 3D Studio application.
During the design phase, the standalone viewer is typically launched from the editor several times to check and verify the presentation in the runtime.
Once the design is done and the
.uip, and other asset files are available, these can be loaded, rendered, and manipulated in Qt applications. This is done via the APIs provided in the
3dstudioruntime2 module and the
QtStudio3D QML plugin.
Below is the same scene loaded into a simple Qt Quick application (the simpleqml example) that composes the 3D content with the other Qt Quick items, for example the ones provided by Qt Quick Controls 2. In addition to displaying the presentation, the application can also control many aspects of it (slides, timeline, object properties) and can react on certain conditions, such as when a 3D object is clicked on (picked) by mouse or touch input.
To profile, debug, and tune the presentation, the runtime provides a built-in, in-scene debug pane that can be toggled both from the viewer and, optionally, from applications as well.
APIs are provided for the following Qt UI technologies:
- Qt Quick: here applications import QtStudio3D 2.0 which provides the Studio3D QML type, a Qt Quick item that can be added to Qt Quick scenes. Under the hood this is similar to adding a Scene3D (when working directly with the lower level Qt 3D framework) or a custom item based on QQuickFramebufferObject into the scene.
- Widgets: Q3DSWidget is a QOpenGLWidget subclass that displays Qt 3D Studio scenes.
- QWindow or offscreen render targets (OpenGL texture): Q3DSSurfaceViewer can be used both to render to an on-screen QWindow, as well as off-screen into an OpenGL texture. The latter allows reading back and saving the frames, to generate pre-rendered video sequences for example.
Rendering Qt 3D Studio scenes is only part of the story since many scenes are not static and will not just display all their contents as they were done by designers in the Qt 3D Studio application. Rather, properties of scene objects (for example, the rotation property of a 3D model, or the diffuse color of the material associated with such a model) may need to be changed dynamically, at run time. The timeline or the current slide may also need to be adjusted based on the user's actions or other application state.
As of Qt 3D Studio 2.0 such functionality is exposed via the Q3DSPresentation (Presentation), Q3DSElement (Element), Q3DSSceneElement (SceneElement), and Q3DSDataInput (DataInput) objects. Advanced scene manipulation (for instance dynamically spawning and removing objects in the 3D scene) will be introduced in future versions.
Available under certain Qt licenses.
Find out more.