Scene3D QML Type
Der Typ Scene3D wird verwendet, um eine Qt3D-Szene in eine QtQuick 2-Szene zu integrieren. Mehr...
| Import Statement: | import QtQuick.Scene3D 2.10 |
| Inherits: | |
| Status: | Preliminary |
Dieser Typ befindet sich in der Entwicklung und kann sich noch ändern.
Eigenschaften
- aspects : list<string>
- cameraAspectRatioMode : enumeration
- compositingMode : enumeration
- entity : Entity
- hoverEnabled : bool
- multisample : bool
Methoden
- void setItemAreaAndDevicePixelRatio(size area, real devicePixelRatio)
Detaillierte Beschreibung
Der Scene3D-Typ rendert eine Qt3D-Szene, die von einem Entity bereitgestellt wird, in ein multisampled Framebuffer-Objekt. Dieses Objekt wird später in ein nicht multigesampeltes Framebuffer-Objekt geblittet, das dann mit vormultipliziertem Alpha gerendert wird. Wenn Multisampling nicht erforderlich ist, kann es vermieden werden, indem die Eigenschaft multisample auf false gesetzt wird. In diesem Fall rendert Scene3D direkt in das Framebuffer-Objekt ohne Multisampling.
Wenn die zu rendernde Szene nicht-opake Materialien enthält, müssen Sie diese Materialien möglicherweise mit benutzerdefinierten Überblendungsargumenten ändern, damit sie korrekt gerendert werden. Wenn Sie z. B. mit PhongAlphaMaterial und einer Szene mit einer undurchsichtigen, klaren Farbe arbeiten, müssen Sie wahrscheinlich:
sourceAlphaArg: BlendEquationArguments.Zero destinationAlphaArg: BlendEquationArguments.One
zu diesem Material hinzufügen.
Es wird nicht empfohlen, mehr als eine einzige Scene3D-Instanz pro Anwendung zu instanziieren. Der Grund dafür ist, dass eine Scene3D-Instanz die gesamte Qt 3D -Engine (z. B. Speichermanager, Thread-Pool, Render) unter der Szene instanziiert.
Hinweis: Wenn Sie die Sichtbarkeit des Scene3D-Elements auf false setzen, wird die Simulationsschleife von Qt 3D angehalten. Das bedeutet, dass die Bindung der Eigenschaft visible an einen Ausdruck, der von Eigenschaftsaktualisierungen durch die Qt 3D Simulationsschleife (FrameAction) abhängt, niemals neu ausgewertet wird.
Dokumentation der Eigenschaften
Die Liste der Aspekte, die für die 3D-Szene registriert werden sollen.
Wenn die Szene zum Beispiel FrameAction verwendet, sollte der Aspekt "logic" in die Liste aufgenommen werden.
Der Aspekt "render" ist fest verdrahtet und muss nicht explizit aufgeführt werden.
cameraAspectRatioMode : enumeration |
Legt fest, wie das Seitenverhältnis einer in der Szene gefundenen Kamera berechnet wird.
| Konstante | Beschreibung |
|---|---|
Scene3D.AutomaticAspectRatio | Automatisches Seitenverhältnis. |
Scene3D.UserAspectRatio | Benutzerdefiniertes Seitenverhältnis. |
compositingMode : enumeration |
| Konstante | Beschreibung |
|---|---|
FBO | Die Szene wird in ein Frame-Buffer-Objekt gerendert, was auf einigen Plattformen und bei bestimmter Hardware kostspielig sein kann, aber ein größeres Maß an Flexibilität ermöglicht. Automatisches Seitenverhältnis. Dies ist der Compositing-Modus, den Sie wählen sollten, wenn Ihr Scene3D -Element nicht den gesamten Bildschirm einnehmen soll und wenn Sie es optional in der Größe verändern oder animieren möchten. In diesem Modus steuert die Position des Scene3D in der QML-Datei seine Stapelreihenfolge im Verhältnis zu den anderen Qt Quick Elementen. |
Underlay | Geeignet für Vollbild-3D-Szenen, bei denen die Verwendung eines FBO zu ressourcenintensiv sein könnte. Scene3D verhält sich wie ein QtQuick Underlay. Bitte beachten Sie, dass bei Verwendung dieses Modus die Größe von Scene3D und seine Transformationen ignoriert werden und das Rendering den gesamten Bildschirm einnimmt. Auch die Position von Scene3D in der QML-Datei hat keine Auswirkungen. Der Inhalt von Qt 3D wird vor dem Inhalt von Qt Quick gezeichnet. Es muss darauf geachtet werden, dass der Inhalt von Qt 3D nicht überzeichnet und durch überlappende Inhalte von Qt Quick verdeckt wird. Wenn Sie diesen Modus verwenden, wird außerdem das Fenster clearBeforeRendering automatisch auf false gesetzt. |
Der Standardwert ist FBO.
entity : Entity |
Das Stammobjekt der anzuzeigenden 3D-Szene.
hoverEnabled : bool |
true ob Hover-Ereignisse akzeptiert werden.
multisample : bool |
true ob ein Multisample-Renderpuffer angefordert wird.
Standardmäßig ist Multisampling aktiviert. Wenn die OpenGL-Implementierung keine Unterstützung für Multisample-Renderbuffer oder Framebuffer-Blits hat, wird die Anforderung, Multisampling zu verwenden, ignoriert.
Hinweis: Ändern Sie den Wert nicht häufig, da dies eine teure und möglicherweise langsame Initialisierung von Framebuffern und anderen OpenGL-Ressourcen erfordert.
Dokumentation der Methode
Setzt die Elementfläche auf area und das Pixelverhältnis auf devicePixelRatio.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.