The joys and sorrows of portable, cross-platform 3D graphics in Qt 6
summary
Qt 6 replaces a tight OpenGL dependency with a portable stack that renders Qt Quick and Qt Quick 3D via Vulkan, Metal, Direct3D11/12 and OpenGL and compiles shaders to SPIR‑V using glslang and SPIRV‑Cross, producing a QSB build‑time shader bundle (GLSL/HLSL/SPIR‑V plus metadata). A QRhi abstraction exposes higher‑level resources and pipelines so a rotating‑triangle sample fits in ~115–145 lines, generates 20 PNG frames and runs on all backends. It works but increases code surface, shader metadata coupling, and occasional CPU/memory tradeoffs.
AI-written summary · about
chapters (10)
- 0:00Qt 6 and 3D intro
- 10:04Qt 6 and OpenGL
- 16:26Cross-platform 3D APIs challenge
- 23:50Shader language fragmentation
- 34:27Qt Rendering Hardware Interface
- 41:50Triangle rendering demo
- 51:05Memory and API differences
- 55:01Porting Qt 3D
- 57:09Lessons from Qt 6’s 3D
- 1:00:39Qt 3D future
related talks
01h 00mThe Evolution of Accelerated 2D and 3D Graphics in Qt
01h 12mQt/3D QML Scripting for UI Designers and Hackers
51mQt Quick 3D & the Emerging Developer Paradigm
01h 35mIntroduction to Qt 3D - Giuseppe D’Angelo - [ACCU 2017]
10mLightning Talk, Qt 3D CAD demo
28mQML, a Booming Graphic Framework
28mWhat’s new in Kuesa and Qt 3D?
21mExplore the features of Qt 3D Design Studio
