Introduction to Qt 3D

By Giuseppe D'Angelo

Applications wanting to include 3D graphics have mostly had to rely on low level graphics APIs or on a number of higher level scene graph based libraries. Modern day 3D graphics however has increased in complexity and many of the existing C++ libraries have struggled to provide versatility and performance. This is likely to become even more problematic with the growth of Virtual Reality and Augmented Reality.

Qt 5.7 introduces Qt3D, a new library for integrating 3D real time rendering in C++ application. Qt 3D is structured around an Entity Component System (ECS) architecture which will be introduced. We will present how to add custom geometries and materials to your scene, or how to deal with user’s input.

Furthermore, we will show how the ECS architecture has been used in two useful ways. First, data related to entities and components can be very easily be modelled in a declarative language like QML (which has been key to Qt’s recent development), enabling unprecedented ease of use for complex rendering techniques. Second, the separation of data and operations has facilitated the creation of a highly concurrent simulation engine, enabling the integration of many different algorithms.

This talk will be interesting to any developer having to implement a 3D scene inside an application (whether already using Qt, or evaluating various technologies for this job). No prior knowledge of OpenGL or GPU programming is required for this talk.