Kuesa

  • Kuesa 1.1
  • Kuesa
  • Kuesa 1.1 Reference Documentation
  • Kuesa is a module for Qt 3D which provides:

    • Support for glTF 2 importing
    • Helpers for accessing and manipulating loaded content
    • Custom PBR material
    • Custom forward renderer for adding effects
    • A Qt Creator template for quickly creating new Kuesa based projects

    Application side features provided by Kuesa reside in the Kuesa Qt module.

    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>
    
    

    QML:

    
      import Kuesa 1.0
    
    

    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 3 components:

    Kuesa Digital Content Creation Plugins

    Kuesa Runtime

    Libraries on top of Qt 3D that provide:

    Kuesa Tools

    A set of tools to preview scenes

    Read More

    Requirements

    • Kuesa requires the base Qt 5.12 requirements and OpenGL supports.
    • Kuesa requires Qt 3D from Qt 5.12.5, Qt 5.13.1 or later.
    • Instructions on how to build Qt from source can be found here.

    OpenGL requirements

    • Desktop OpenGL 3+
    • OpenGL ES 3.2
    • OpenGL ES 3.1 or lower is supported but with a limited feature set depending on available OpenGL extensions:
      • For HDR support, GL_OES_texture_half_float is required
      • For anti aliasing, ARB_texture_multisample and GL_EXT_color_buffer_half_float are required

    Optional Dependencies

    Kuesa can optionnally 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.

    The glTF editor, provided with Kuesa, is able to compress existing glTF 2.0 assets with Draco.

    Installation

    Kuesa builds as a Qt module and will be installed alongside Qt.

    
      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.

    Reference

    Kuesa Platform Support

    Kuesa has the following support for platforms:

    • Microsoft Windows (win32) - Supported
    • Linux X11 - Supported
    • macOS - Supported although there may be some retina scaling issues
    • Android - Supported
    • Embedded Linux - Supported
    • iOS - Supported
    • WinRT - Not supported yet

    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

    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

    OpenGL Image (gli)

    The Happy Bunny License (Modified MIT License)

    dds-loader-python

    MIT License