<div dir="ltr"><div>Hi all</div><div><br></div><div>As you know, 3D map views in QGIS are based on the Qt 3D module. Since Qt 6.8 (released in Oct 2024) the Qt 3D module is marked as deprecated [1]. This does not mean that it will be removed anytime soon, but there's no development planned by the Qt company. There has been very little development in Qt 3D in recent years and little adoption within wider Qt community.</div><div><br></div><div>A question naturally comes up - what should we do within the QGIS project? Stay with Qt 3D or start moving towards something else?</div><div><br></div><div>At Lutra, we have started some internal discussions about this. Qt 3D does its job, but we find it often over-complicated (e.g. framegraph, entity-component-system scene representation) and under-documented. And with the lack of direct access to graphics APIs we have accumulated various workarounds and bugs that are difficult to fix.</div><div><br></div><div>If we wanted to switch to something else, there are lots of options: from the very low-level wrappers around graphics APIs all the way to full blown 3D rendering engines for games.</div><div><br></div><div>At this point, QRhi [2] looks like an interesting option. QRhi is a part of Qt GUI module and it is a relatively low-level abstraction on top of modern graphics APIs (Metal, Vulkan, Direct3D). It is already being used under the hood by Qt Quick and Qt Quick 3D (and optionally also by Qt 3D). It is kind of semi-private API of Qt GUI module, but it is well documented and the API has been quite stable despite the lack of source/binary compatibility guarantees.</div><div><br></div><div>With a low-level approach like QRhi we would get a lot of control, at the expense of having to roll out our own abstractions that Qt 3D provides (e.g. camera, geometry, material, scene graph).</div><div><br></div><div>I would love to hear some thoughts from other QGIS devs about the possible migration away from Qt 3D. If there will be consensus, we can then start working on a QEP and prepare a more detailed plan.</div><div><br></div><div>Regards</div><div>Martin</div><div><br></div><div><br></div><div>[1] <a href="https://doc.qt.io/qt-6/whatsnew68.html">https://doc.qt.io/qt-6/whatsnew68.html</a></div><div>[2] <a href="https://doc.qt.io/qt-6/qrhi.html">https://doc.qt.io/qt-6/qrhi.html</a></div></div>