Kuesa Runtime

Kuesa Runtime is a module for Qt 3D which provides:

It is the developer facing part of the Kuesa 3D design and integration workflow.

Getting Started

For a C++ applications and C++/QML applications that performs 2D or 3D rendering leveraging the Kuesa and Qt 3D modules:

 QT += 3dcore 3drender 3dinput 3dlogic 3dextras 3danimation kuesa

To include the definitions of the module's classes, use the following directives:

C++:

 #include <Kuesa>

 int main(int ac, char **av)
 {
     QGuiApplication app(ac, av);
     Qt3DExtras::Qt3DWindow w;

     KuesaUtils::SceneConfiguration sceneConfiguration;
     sceneConf.setSource(QUrl("file:///path/to/file.gltf));
     sceneConf.setCameraName("CameraNameInGLTF");

     KuesaUtils::View3DScene view3d;
     view3d.setActiveScene(&sceneConfiguration);

     w.setRootEntity(&view3d);
     w.setActiveFrameGraph(view3d.frameGraph());
     w.show();

     return app.exec();
 }

QML:

 import Kuesa 1.3
 import Kuesa.Utils 1.3

 View3D {
     id: scene3D
     multisample: true
     source: "file:///path/to/file.gltf"
     camera: "cameraNameInGLTF"
 }

Quick Overview

Kuesa aims at making it easier for both Artist and Developers to preview and integrate 3D scenes into a Qt based application.

Kuesa provides an easy, integrated and unified workflow without any compromises for designers and developers based on the glTF 2 format.

It is composed of 2 components:

Kuesa Studio

Kuesa Studio is only available as a commercial package. It is the designer facing part of the Kuesa workflow.

Kuesa Digital Content Creation Plugins

Kuesa Studio Tools

The Kuesa-Studio comes with a gltf tool to preview and introspect scenes.

It also provides tools to condition assets to integrate as part of the build process.

Kuesa Runtime

It is the developer facing part of the Kuesa workflow. It is materialized as a library on top of Qt 3D that provides:

Tools

The Kuesa-Runtime comes with the gltfViewer tool to preview scenes.

Read More

Requirements

Kuesa relies on the Qt framework:

Note: Earlier Qt 3D versions can still be used but might be suffering from bugs that have been identified and fixed since.

OpenGL requirements

Vulkan, Metal, DirectX requirements

If using Qt 6.0, Kuesa can alternatively run on top of Vulkan, Metal or DirectX.

Optional Dependencies

Kuesa can optionally use the Draco mesh compression library, either through an embedded version, or a version present on the system. Draco can be used to dramatically decrease the size of glTF files.

Kuesa supports the KHR_draco_mesh_compression glTF extension as defined here.

By default, Kuesa will build with its own embedded version of the Draco library. This can be enforced with:

 qmake kuesa.pro -- --draco=qt

To build Kuesa without any support for Draco, run qmake like this:

 qmake kuesa.pro -- --draco=no

To build Kuesa with an external version of Draco, run qmake like this:

 qmake kuesa.pro -- --draco=system

If Draco is not installed in the default location on your system, you can set the DRACOSDK environment variable to point to where Draco is installed. Use the DRACOSDK_LIBS environment variable to point to the folder containing the Draco libraries.

Note that Kuesa has last been tested with Draco at commit 8833cf878e6fd43c5a3fd6e4231212e25e25e632.

Installation

Kuesa builds as a Qt module and will be installed alongside Qt. The main advantage is that once installed, using Kuesa in your projects is as easy as adding

 QT += kuesa

to your project file. The down side is that building Kuesa from source can be a little more complicated if you're not used to building Qt itself already.

Note: you DO NOT have to build Qt from source, building Kuesa against a pre-installed version of Qt should work fine.

But building a module means that Kuesa has dependencies that are similar to those that apply when building Qt from source (Instructions on how to build Qt from source can be found here.

In particular:

Once these are installed, `syncqt` will be able to generate the module headers at build time. Simply run:

 qmake
 make
 make install

Should examples not be built, try:

 make sub-examples
 cd examples
 make install

To install the Qt Creator template, copy the entire kuesa folder from tools/qtc_templates to the templates/wizards folder inside the Qt Creator install location.

Clearing Stale Caches

If you've updated Kuesa or have used Kuesa previously, it is recommended to clear the Qt 3D cached shader files.

The cache is located at Qt::TempLocation which is usually ""C:/Users/<USER>/AppData/Local/Temp" on Windows and "/tmp" on Linux.

Remove all the .qt3d files present at that location to ensure Kuesa rebuilds all the shaders with all the updates.

Reference

Kuesa Platform Support

Kuesa has the following support for platforms:

Licenses and Attributions

Kuesa is available under commercial licenses from KDAB. In addition, it is also available under the GNU Affero General Public License, version 3

Licenses for 3rd-parties used in Kuesa-Runtime

Draco 3D Data Compression

Apache License 2.0

KTX texture

Apache License 2.0

Tangent Space Library

Public Domain

Licenses for 3rd-parties used in Kuesa Examples

Freeverb

BSD

dr_wav

Public Domain

readerwriterqueue

BSD Simplified

Licenses for 3rd-parties used in Kuesa Tools