Discovering Qt3D
The example project of this chapter will rely on 3D rendering. For this, we will use Qt3D. This part of the framework is divided into various Qt modules that enable the application to have a near-real time simulation of a 3D environment. Built on OpenGL, Qt3D offers a high-level API to describe complex scenes without having to resort to writing low-level OpenGL instructions. Qt3D supports the following basic features:
2D and 3D rendering for C++ and Qt Quick
Meshes
Materials
GLSL shaders
Shadow mapping
Deferred rendering
Instance rendering
Uniform Buffer Object
All these features are implemented in the ECS (entity component system) architecture. Each mesh, material, or shader that you define is a component. The aggregation of these components makes an entity. If you wanted to draw a 3D red apple, you would need the following components:
A mesh component, holding the vertices of your apple
A material component, applying a texture on the mesh or coloring it
These two components will then...