Introducing Qt3D 2.0
JamesTurner and Giuseppe D’Angelo introducing Qt3D 2.0
Abstract: Qt3D 1.0 was created during the Qt4 life-cycle, and has been deprecated since the release of Qt5. Additionally, the API design featured some limitations which restricted the potential use-cases; injecting large amounts of dynamic data into the scene, configuring advanced multi-pass / deferred renderers, and using multiple textures were all problematic. Qt3D 2.0 aims to address these concerns by providing a compact framework for 3D rendering and associated tasks such as picking, physical simulation and audio. As in Qt3D 1.0, there is a simple QML API to define a scene of entities, complemented by an efficient C++ API; however this has been augmented with a modular frame-graph description (again via either QML or C++), allowing the rendering pipeline to be configured easily.
We will introduce the basic APIs for creating a scene, loading and positioning entities, and viewing the results. We will show examples of adding additional scene elements, such as lights, and modifying entity materials and shaders while using the standard rendering pipeline. Where time permits we hope to show both the QML and C++ variants for each API. Having show the basic features, we will demonstrate configuring the frame-graph itself via QML, by implementing a post-processing renderer.
Having covered these basic rendering features, we will show in more detail some examples of the component system, defining some entities for re-use, which incorporate components from distinct modules of the Qt3D system. This will introduce people to the kinds of modules they might use or create in their own projects, as well as informing the design of good entities for a particular domain or problem.