KDAB_Tree_Header_Mobile KDAB_Tree_Header_Web

Trusted Software Excellence since 1999

Paul Lemire

13 results

Parts One and Two of our three part Qt 3D series focused on drawing a 3D model and accepting user input, which are necessary building blocks of 3D applications. For the last part, we’ll look at how to use Qt 3D and frame graphs to create some really sophisticated looking graphics, including how to implement multi-pass rendering.

The ability to create a 3D applications is a skillset that is increasingly in demand as it plays a crucial role in advanced UX design, virtual reality, game development, and more. While developing a modern 3D program requires many disparate skills, there are frameworks that help the developer stitch it all together. Qt 3D, developed by KDAB, is one such framework. Our first Qt 3D whitepaper helped us understand the structure of a Qt 3D program - the nature of the entities, components and aspects, in the scene graph and frame graph. This paper shows how to incorporate those elements into a functioning program by examining how to receive user input and how to animate objects in a scene.

Learning to create 3D applications can be an overwhelming task even for seasoned developers because of all the new terminology, visual concepts, and advanced math. To simplify the job, many developers use a framework like Qt 3D, which KDAB developed and contributed to Qt. In this paper, the first of 3 whitepapers, you will learn about the structure of a Qt 3D program – the nature of entities, components, and aspects, and how those are incorporated into the scene graph and frame graph. The Qt 3D Basics series is intended to help developers create highly polished Qt 3D applications, including descriptions of the technology components, the rationale behind their designs, and straightforward examples.

Developers often spend significant time recreating designs or design changes that may not match the designer's vision. When 3D scene changes are involved, the back-and-forth updates become time-consuming and frustrating. Kuesa 3D simplifies this process - simply pointing to an updated glTF file location in your code instantly shows 3D scene changes in your application.

Integrating 3D models into applications traditionally requires developers to request parts from designers and manually reassemble them repeatedly. Kuesa simplifies this workflow, enabling fast demos and significant time savings without compromising 3D model quality by using designer-created scenes (models + animations) directly rather than manual reassembly.

This KUESA™ 3D example demonstrates skeletal animation imported from Blender via GLTF2, audio synthesis based on played notes, robot arm control with user-adjustable playback speed, seamless integration of design animations with live data input, and cross-platform compatibility running on both desktop and embedded targets.

Qt 3D 2.0 introduces an Entity-Component-System architecture replacing traditional inheritance hierarchies. Features multi-threaded rendering with declarative frame graph configuration through QML, supporting advanced techniques like tessellation and deferred rendering. The extensible aspect system allows custom functionality integration while maintaining scalability across CPU cores.

PaulLemire

Paul Lemire

Senior Software Engineer