Camera QML Type
Definiert eine abstrakte Basis für Cameras. 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)
Detaillierte Beschreibung
Eine Kamera definiert, wie der Inhalt der 3D-Szene auf eine 2D-Oberfläche projiziert wird, z. B. auf eine View3D. Eine Szene benötigt mindestens eine Kamera, um ihren Inhalt zu visualisieren.
Es ist möglich, die Kamera wie jede andere räumliche Node in der Szene zu positionieren und zu drehen. Die Position und Ausrichtung der Node bestimmt, wo sich die Kamera in der Szene befindet und in welche Richtung sie blickt. Bei der Standardausrichtung der Kamera zeigt der Vorwärtsvektor entlang der negativen Z-Achse und der Aufwärtsvektor entlang der positiven Y-Achse.
Zusammen mit der Position und der Ausrichtung definiert der Kegelstumpf, welche Teile einer Szene für die Kamera sichtbar sind und wie sie auf die 2D-Oberfläche projiziert werden. Die verschiedenen Kamera-Subtypen bieten mehrere Optionen, um die Form des Kamerastumpfes zu bestimmen.
- PerspectiveCamera bietet eine Kamera mit einem pyramidenförmigen Kegelstumpf, bei dem die Objekte so projiziert werden, dass die weiter von der Kamera entfernten Objekte kleiner erscheinen. Dies ist der am häufigsten verwendete Kameratyp und entspricht der Funktionsweise der meisten Kameras in der realen Welt.
- OrthographicCamera Bei dieser Kamera sind die Linien des Kegelstumpfes parallel, so dass die wahrgenommene Größe eines Objekts nicht von seiner Entfernung zur Kamera abhängt. Typische Anwendungsfälle für diesen Kameratyp sind CAD-Anwendungen (Computer-Assisted Design) und Kartografie.
- FrustumCamera ist ein perspektivischer Kameratyp, bei dem der Kegelstumpf durch die Koordinaten seines Schnittpunkts mit der nahen Ebene frei angepasst werden kann. Dies kann nützlich sein, wenn ein asymmetrischer Kamerastumpf benötigt wird.
- CustomCamera ist ein Kameratyp, bei dem die Projektionsmatrix frei angepasst werden kann, und kann für fortgeschrittene Benutzer nützlich sein, die ihre eigene Projektionsmatrix berechnen möchten.
Um den Unterschied zu verdeutlichen, zeigen diese Screenshots dieselbe Szene, wie sie von einer PerspectiveCamera und einer OrthographicCamera projiziert wird. Beachten Sie, dass der rote Kasten kleiner ist als der grüne Kasten im Bild, das mit der perspektivischen Projektion gerendert wurde.
| Perspektivische Kamera | Orthografische Kamera |
|---|---|
|
|
Siehe auch Qt Quick 3D - View3D Beispiel.
Dokumentation der Eigenschaften
frustumCullingEnabled : bool
Wenn diese Eigenschaft auf true gesetzt ist, werden Objekte außerhalb des Kamerastumpfes aussortiert, d. h. sie werden nicht an den Renderer übergeben. Standardmäßig ist diese Eigenschaft auf false eingestellt. Bei Szenen, in denen sich alle oder die meisten Objekte innerhalb des Kamerastumpfes befinden, ist das Ausblenden von Objekten ein unnötiger Leistungs-Overhead. Bei komplexen Szenen, bei denen sich große Teile außerhalb des Kamerablickfeldes befinden, kann die Aktivierung des Frustum Culling jedoch die Leistung verbessern.
levelOfDetailBias : real [since 6.5]
Diese Eigenschaft ändert die Größe, die ein Modell haben muss, wenn es gerendert wird, bevor die automatischen Level of Detail-Meshes verwendet werden. Jedes generierte Level-of-Detail-Mesh enthält einen Wert für die ideale Größe, die für jedes Level angezeigt werden sollte, d. h. ein Verhältnis, das angibt, wie viel von der gerenderten Szene aus diesem Mesh bestehen wird. Ein Modell, das nur wenige Pixel auf dem Bildschirm darstellt, benötigt nicht die gesamte Geometrie, um korrekt auszusehen, daher wird in diesem Fall ein Mesh mit geringerer Detailgenauigkeit verwendet. Dieser Wert ist eine Annäherung an den Idealwert, so dass 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 schaltet die Verwendung von Detailstufen vollständig ab.
Der Standardwert ist 1.0
Hinweis: Diese Eigenschaft wirkt sich nur auf Modelle aus, deren Geometrie Detailebenen 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, so dass diese Kamera immer auf den angegebenen Knoten schaut, wenn sich die Szenenposition dieser Kamera oder des angegebenen Knotens ändert. Standardmäßig ist diese Eigenschaft auf null gesetzt.
Siehe auch lookAt.
Dokumentation der Methode
vector3d lookAt(QtQuick3D::Node node)
Legt den Rotationswert der Kamera so fest, dass sie auf node gerichtet ist.
vector3d lookAt(vector3d scenePos)
Legt den Rotationswert der Kamera so fest, dass sie auf scenePos gerichtet ist.
vector3d mapFromViewport(vector3d viewportPos)
Transformiert viewportPos vom Ansichtsfensterraum (2D) in den globalen Szenenraum (3D).
Die x- und y-Werte von viewportPos müssen normalisiert werden, wobei die obere linke Ecke des Ansichtsfensters bei [0, 0] und die untere rechte Ecke bei [1, 1] liegen muss. Der z-Wert wird als der Abstand von der nahen Clipebene des Kegelstumpfes (clipNear) interpretiert.
Wenn viewportPos nicht erfolgreich auf eine Position in der Szene abgebildet werden kann, wird eine Position von [0, 0, 0] zurückgegeben.
Siehe auch mapToViewport und View3D.mapTo3DScene().
vector3d mapToViewport(vector3d scenePos)
Transformiert scenePos vom globalen Szenenraum (3D) in den Ansichtsfensterraum (2D).
Die zurückgegebene Position ist normalisiert, wobei die obere linke Ecke des Ansichtsfensters bei [0, 0] und die untere rechte Ecke bei [1, 1] liegt. Der zurückgegebene z-Wert enthält den Abstand von der nahen Clipebene des Kegelstumpfes (clipNear) zu scenePos in Szenekoordinaten. Wenn der Abstand negativ ist, befindet sich der Punkt hinter der Kamera.
Wenn scenePos nicht erfolgreich auf eine Position im Ansichtsfenster abgebildet werden kann, wird eine Position von [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.

