Camera QML Type
Definiert eine abstrakte Basisklasse für Kameras. Mehr...
| Import Statement: | import QtQuick3D |
| Inherits: | |
| Inherited By: | CustomCamera, FrustumCamera, OrthographicCamera, and PerspectiveCamera |
Eigenschaften
- frustumCullingEnabled : bool
- levelOfDetailBias : real
(since 6.5) - lookAtNode : Node
Methoden
- vector3d lookAt(QtQuick3D::Node node)
- vector3d lookAt(vector3d scenePos)
- vector3d mapFromViewport(vector3d viewportPos)
- vector3d mapToViewport(vector3d scenePos)
Ausführliche Beschreibung
Eine Kamera legt fest, wie der Inhalt der 3D-Szene auf eine 2D-Fläche, wie beispielsweise ein „ View3D “, projiziert wird. Eine Szene benötigt mindestens eine Kamera, um ihren Inhalt darzustellen.
Die Kamera lässt sich wie jedes andere räumliche „ Node “ in der Szene positionieren und drehen. Die Position und Ausrichtung des „ Node “ bestimmen, wo sich die Kamera in der Szene befindet und in welche Richtung sie blickt. Bei der Standardausrichtung der Kamera zeigt ihr Vorwärtsvektor entlang der negativen Z-Achse und ihr Aufwärtsvektor entlang der positiven Y-Achse.
Zusammen mit der Position und der Orientierung legt der Sichtkegel fest, welche Teile einer Szene für die Kamera sichtbar sind und wie sie auf die 2D-Fläche projiziert werden. Die verschiedenen Kamerasubtypen bieten zahlreiche Optionen zur Festlegung der Form des Sichtkegels der Kamera.
- PerspectiveCamera bietet eine Kamera mit einem pyramidenförmigen Frustum, bei dem Objekte so projiziert werden, dass diejenigen, die weiter von der Kamera entfernt sind, kleiner erscheinen. Dies ist der am häufigsten verwendete Kameratyp und entspricht der Funktionsweise der meisten Kameras in der realen Welt.
- OrthographicCamera bietet eine Kamera, bei der die Linien des Sichtkegels parallel verlaufen, wodurch die wahrgenommene Größe eines Objekts nicht von dessen Entfernung zur Kamera beeinflusst wird. Typische Anwendungsfälle für diesen Kameratyp sind CAD-Anwendungen (Computer-Aided Design) und Kartografie.
- FrustumCamera ist ein perspektivischer Kameratyp, bei dem der Kegelstumpf durch die Koordinaten seines Schnittpunkts mit der Nahfläche frei angepasst werden kann. Dies kann nützlich sein, wenn ein asymmetrischer Kamerakegelstumpf benötigt wird.
- CustomCamera ist ein Kameratyp, bei dem die Projektionsmatrix frei angepasst werden kann; dies kann für fortgeschrittene Benutzer nützlich sein, die ihre eigene Projektionsmatrix berechnen möchten.
Um den Unterschied zu veranschaulichen, zeigen diese Screenshots dieselbe Szene, projiziert mit einer „ PerspectiveCamera “ und einer „ OrthographicCamera “. Beachten Sie, dass der rote Rahmen in dem mit der perspektivischen Projektion gerenderten Bild kleiner ist als der grüne Rahmen.
| Perspektivkamera | Orthografische Kamera |
|---|---|
|
|
Siehe auch Qt Quick 3D – View3D-Beispiel.
Dokumentation zu den Eigenschaften
frustumCullingEnabled : bool
Wenn diese Eigenschaft auf „ true “ gesetzt ist, werden Objekte außerhalb des Kamera-Frustums ausgeblendet, d. h., sie werden nicht an den Renderer weitergeleitet. Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt. Bei Szenen, in denen sich alle oder die meisten Objekte innerhalb des Kamera-Frustums befinden, stellt das Frustum-Culling einen unnötigen Leistungsaufwand dar. Bei komplexen Szenen, bei denen sich große Teile außerhalb des Kamerasichtkegels befinden, kann die Aktivierung des Frustum-Culling jedoch die Leistung verbessern.
levelOfDetailBias : real [since 6.5]
Diese Eigenschaft legt fest, wie groß ein Modell beim Rendern sein muss, bevor die automatischen Detailebenen-Meshes verwendet werden. Jedes generierte Detailebenen-Mesh enthält einen Wert für die ideale Größe, in der die jeweilige Ebene dargestellt werden soll; dieser Wert gibt an, welchen Anteil des gerenderten Bildes dieses Mesh ausmacht. Ein Modell, das auf dem Bildschirm nur wenige Pixel einnimmt, benötigt nicht die vollständige Geometrie, um korrekt dargestellt zu werden; daher wird in diesem Fall stattdessen ein Mesh mit geringerer Detailstufe verwendet. Dieser Wert ist eine Abweichung vom Idealwert, sodass ein Wert kleiner als 1.0 eine noch kleinere gerenderte Größe erfordert, bevor auf eine geringere Detailstufe umgeschaltet wird. Werte über „ 1.0 “ führen dazu, dass niedrigere Detailstufen früher verwendet werden. Ein Wert von „ 0.0 “ deaktiviert die Verwendung von Detailstufen vollständig.
Der Standardwert lautet 1.0
Hinweis: Diese Eigenschaft wirkt sich nur auf Modelle aus, deren Geometrie Detailstufen enthält.
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch Model::levelOfDetailBias.
lookAtNode : Node
Wenn diese Eigenschaft auf den Wert „ non-null “ gesetzt ist, wird die Drehung dieser Kamera automatisch aktualisiert, sodass die Kamera stets auf den angegebenen Knoten ausgerichtet bleibt, sobald sich die Szenenposition dieser Kamera oder des angegebenen Knotens ändert. Standardmäßig ist diese Eigenschaft auf „ null “ gesetzt.
Siehe auch „ lookAt “.
Methodendokumentation
vector3d lookAt(QtQuick3D::Node node)
Stellt den Drehungswert der Kamera so ein, dass sie auf node zeigt.
vector3d lookAt(vector3d scenePos)
Stellt den Drehungswert der Kamera so ein, dass sie auf scenePos zeigt.
vector3d mapFromViewport(vector3d viewportPos)
Wandelt „ viewportPos “ vom Ansichtsbereich (2D) in den globalen Szenenraum (3D) um.
Die x- und y-Werte von „ viewportPos “ müssen normalisiert sein, wobei die linke obere Ecke des Ansichtsfensters bei [0, 0] und die rechte untere Ecke bei [1, 1] liegt. Der z-Wert wird als Abstand zur nahen Clip-Ebene des Frustums (clipNear) interpretiert.
Wenn „ viewportPos “ nicht erfolgreich auf eine Position in der Szene abgebildet werden kann, wird die Position [0, 0, 0] zurückgegeben.
Siehe auch „ mapToViewport “ und „ View3D.mapTo3DScene()“.
vector3d mapToViewport(vector3d scenePos)
Wandelt „ scenePos “ vom globalen Szenenraum (3D) in den Viewport-Raum (2D) um.
Die zurückgegebene Position ist normalisiert, wobei die linke obere Ecke des Viewports bei [0, 0] und die rechte untere Ecke bei [1, 1] liegt. Der zurückgegebene z-Wert enthält den Abstand von der nahen Clip-Ebene des Frustums (clipNear) zu scenePos in Szenenkoordinaten. Ist der Abstand negativ, befindet sich der Punkt hinter der Kamera.
Wenn scenePos nicht erfolgreich auf eine Position im Ansichtsbereich abgebildet werden kann, wird die Position [0, 0, 0] zurückgegeben.
Siehe auch „ mapFromViewport()“ und „ View3D.mapFrom3DScene()“.
© 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.

