Scene3D QML Type
Der Typ „Scene3D“ dient dazu, eine Qt3D-Szene in eine „ QtQuick 2“-Szene zu integrieren. Mehr dazu...
| Import Statement: | import QtQuick.Scene3D 2.12 |
| Inherits: | |
| Status: | Technology preview |
Dieser Typ befindet sich in der Technologievorschau 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)
Ausführliche Beschreibung
Der Typ „Scene3D“ rendert eine Qt3D-Szene, die von einem „ Entity “ bereitgestellt wird, in ein Framebuffer-Objekt mit Multisampling. Dieses Objekt wird anschließend in ein Framebuffer-Objekt ohne Multisampling kopiert, das dann mit vormultipliziertem Alpha gerendert wird. Wenn kein Multisampling erforderlich ist, kann dies vermieden werden, indem die Eigenschaft „ multisample “ auf „ false “ gesetzt wird. In diesem Fall rendert „Scene3D“ direkt in das nicht-multisampled Framebuffer-Objekt.
Wenn die zu rendernde Szene nicht-opake Materialien enthält, müssen Sie diese Materialien möglicherweise mit benutzerdefinierten Blend-Argumenten anpassen, damit sie korrekt gerendert werden. Wenn Sie beispielsweise mit einem „ PhongAlphaMaterial “ und einer Szene mit einer opaken Klarfarbe arbeiten, sollten Sie wahrscheinlich Folgendes hinzufügen:
sourceAlphaArg: BlendEquationArguments.Zero
destinationAlphaArg: BlendEquationArguments.Onezu diesem Material hinzufügen.
Es wird nicht empfohlen, mehr als eine „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, Renderer) unter der Szene instanziiert.
Hinweis: Wenn Sie die Sichtbarkeit des Scene3D-Elements auf „false“setzen , wird die Qt 3D -Simulationsschleife angehalten. Das bedeutet, dass die Bindung der „visible“-Eigenschaft an einen Ausdruck, der von Eigenschaftsaktualisierungen abhängt, die durch die Qt 3D -Simulationsschleife (FrameAction) gesteuert werden, niemals neu ausgewertet wird.
Dokumentation zu den Eigenschaften
aspects : list<string>
Die Liste der Aspekte, die für die 3D-Szene registriert werden sollten.
Wenn die Szene beispielsweise „FrameAction“ verwendet, sollte der Aspekt „ "logic" “ in die Liste aufgenommen werden.
Der Aspekt „ "render" “ ist fest integriert und muss nicht explizit aufgeführt werden.
cameraAspectRatioMode : enumeration
Legt fest, wie das Seitenverhältnis einer in der Szene befindlichen 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 manchen Plattformen und mit bestimmter Hardware rechenintensiv sein kann, jedoch eine größere Flexibilität ermöglicht. Automatisches Seitenverhältnis. Dies ist der geeignete Compositing-Modus, wenn Ihr „ Scene3D “-Element nicht den gesamten Bildschirm einnehmen soll und Sie optional eine Größenanpassung oder Animation vorsehen. In diesem Modus bestimmt die Position des „ Scene3D “ in der QML-Datei dessen 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 des „ Scene3D “ und dessen Transformationen ignoriert werden und das Rendering den gesamten Bildschirm einnimmt. Die Position des „ Scene3D “ in der QML-Datei hat ebenfalls keine Auswirkung. Der Inhalt von „ Qt 3D “ wird vor dem Inhalt von „ Qt Quick “ gezeichnet. Es ist darauf zu achten, dass der Inhalt von „ Qt 3D “ nicht durch überlappenden Inhalt von „ Qt Quick “ überzeichnet und verdeckt wird. Außerdem wird bei Verwendung dieses Modus die Eigenschaft „clearBeforeRendering“ des Fensters automatisch auf „false“ gesetzt. |
Der Standardwert lautet „ FBO “.
entity : Entity [default]
Die Stammentität der anzuzeigenden 3D-Szene.
hoverEnabled : bool
true sofern Hover-Ereignisse akzeptiert werden.
multisample : bool
true wenn ein Multisample-Renderbuffer angefordert wird.
Standardmäßig ist Multisampling aktiviert. Wenn die OpenGL-Implementierung keine Unterstützung für Multisample-Renderbuffer oder Framebuffer-Blits bietet, wird die Anforderung zur Verwendung von Multisampling ignoriert.
Hinweis: Vermeiden Sie häufige Änderungen des Wertes, da dies eine aufwendige und möglicherweise langsame Initialisierung von Framebuffern und anderen OpenGL-Ressourcen mit sich bringt.
Methodendokumentation
void setItemAreaAndDevicePixelRatio(size area, real devicePixelRatio)
Legt den Elementbereich auf „ area “ und das Pixelverhältnis auf „ devicePixelRatio “ fest.
© 2026 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.