Login
Newsletter
Werbung

Mo, 21. Oktober 2019, 14:22

Software::Entwicklung

Zukunft von Qt 3D skizziert

Die Qt Company hat dargelegt, wie die Entwicklung von Qt 3D weitergehen soll, während zugleich 3D-Funktionalität in Qt Quick einzieht. Der aktuelle Beitrag bezieht sich auf die Qt-Reihe 5.x.

Qt Project

Qt 3D ist ein sehr allgemein gehaltenes Modul der Qt-Bibliothek, das der dreidimensionalen Darstellung dient. Es nicht einfach eine Kapselung von OpenGL- oder Vulkan-Funktionalität, sondern ein komplettes Framework zur Erstellung, Bearbeitung und Darstellung von 3D-Szenen. Seit Qt 5.7, also gut drei Jahren, ist es ein unterstützter Bestandteil von Qt.

Inzwischen ist ein neues Modul Qt Quick 3D in Arbeit, das in der bestehenden Qt 5.x-Reihe allerdings nur eine QML-Schnittstelle erhalten wird; eine C++-Schnittstelle ist erst für Qt 6.x geplant, das in gut einem Jahr der Freigabe nahekommen dürfte. Ein Blog-Beitrag der Qt Company will das Verhältnis beider Module zueinander klären. Qt 3D hat den Nachteil, dass Entwickler sich einigermaßen gut mit 3D auskennen müssen. Trotzdem können sie schnell an die Grenzen stoßen und müssen dann ihre Daten anpassen oder einen externen Darstellungsalgorithmus einbinden. Sie behalten aber die volle Kontrolle über den ganzen Vorgang.

Qt Quick 3D soll das Darstellen einfacher 3D-Inhalte mit deutlich weniger Aufwand möglich machen. Dafür ist es aber weniger anpassbar, so dass Entwickler hier noch schneller an die Grenzen stoßen werden. Das bedeutet, dass sie wiederum einen externen Darstellungsalgorithmus einbinden oder, wenn das nicht möglich ist, auf ein anderes Framework ausweichen müssen, beispielsweise Qt 3D.

Daher wird Qt 3D erhalten bleiben, denn es hat weiterhin zahlreiche Anwendungsfälle, die mit Qt Quick 3D nicht abdeckbar sind. Dazu gehören komplexere Anwendungen, größere Kontrolle über die Verarbeitung und die Nutzung von C++ zusätzlich zu oder anstatt QML. Außerdem ist noch die Lizenzfrage zu beachten. Qt Quick 3D wird unter der GPLv3 bereitgestellt, wie fast alle Erweiterungsmodule von Qt seit 2016. Qt 3D hingegen ist Bestandteil von Qt und steht damit unter der LGPLv3. Damit kann es auch in proprietären Projekten genutzt werden, ohne eine kommerzielle Lizenz von Qt zu erwerben.

Ein leichteres Arbeiten mit Qt 3D ist mit Hilfe des Systems KUESA möglich, das von KDAB entwickelt wird. Dessen Laufzeitumgebung baut auf Qt 3D und ermöglicht es, glTF 2-Dateien zu importieren. KUESA 1.1 soll in Kürze veröffentlicht werden und vollständig mit glTF 2 kompatibel sein.

Qt 3D wird somit weiter ausgebaut. Im schon bald erscheinenden Qt 5.14 wird das Thread-Verhalten optimiert, so dass die Geschwindigkeit auf kleinen eingebetteten Systemen besser sein soll. Das bisher immer zwischengeschaltete Framebuffer-Objekt wird unter gewissen Bedingungen wegoptimiert, was ebenfalls eingebetteten Systemen zugute kommen soll, die teilweise über sehr schlechte Framebuffer-Implementationen verfügen. Auch diese Verbesserung soll in Qt 5.14 landen. Eine weitere Optimierung betrifft die Nachrichten, die bei der Änderung von Eigenschaften zwischen Front- und Backend ausgetauscht werden. Die bisherige Implementation stellte sich als limitierender Faktor heraus und wird daher vollständig neu geschrieben. An die Stelle eines Nachrichtenaustauschs tritt eine direkte Synchronisation von Front- und Backend. Diese Verbesserung wird wohl in Qt 5.14 noch nicht enthalten sein, aber in einem Update kurze Zeit später nachgereicht.

Zusätzlich zu diesen drei größeren Punkten wurden in Qt 3D im Rahmen der andauernden Entwicklung auch zahlreiche weitere Optimierungen vorgenommen, die in Qt 5.14 zu finden sein werden. Auch in Qt 6 soll Qt 3D erhalten bleiben und weiter verbessert werden.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung