Model QML Type
Ermöglicht das Laden von 3D-Modelldaten. Mehr...
| Import Statement: | import QtQuick3D |
| Inherits: | |
| Inherited By: |
Eigenschaften
- bakedLightmap : BakedLightmap
- bounds : Bounds
- castsReflections : bool
(since 6.4) - castsShadows : bool
- depthBias : real
- geometry : Geometry
- instanceRoot : QtQuick3D::Node
- instancing : QtQuick3D::Instancing
- instancingLodMax : real
- instancingLodMin : real
- inverseBindPoses : List<matrix4x4>
- levelOfDetailBias : real
(since 6.5) - materials : List<QtQuick3D::Material>
- morphTargets : List<QtQuick3D::MorphTarget>
- motionVectorEnabled : bool
(since 6.11) - motionVectorScale : real
(since 6.11) - pickable : bool
- receivesReflections : bool
- receivesShadows : bool
- skeleton : Skeleton
- skin : Skin
- source : url
- texelsPerUnit : real
(since 6.10) - usedInBakedLighting : bool
Detaillierte Beschreibung
Das Element "Modell" ermöglicht das Laden eines Meshes und die Änderung seiner Schattierung, indem Materialien hinzugefügt werden. Damit ein Modell gerendert werden kann, benötigt es mindestens ein Mesh und ein Material.
Mesh-Format und eingebaute Primitive
Das Modell kann statische Meshes aus dem Speicher oder einen der eingebauten Primitivtypen laden. Das verwendete Mesh-Format ist ein Laufzeitformat, das der Engine eigen ist, aber zusätzliche Formate werden durch das Asset-Import-Tool Balsam unterstützt.
Die eingebauten Primitive können geladen werden, indem die Eigenschaft source auf einen der folgenden Werte gesetzt wird: #Rectangle, #Sphere, #Cube, #Cylinder or #Cone.
Model { source: "#Sphere" }
In der folgenden Tabelle werden die eingebauten Meshes genauer beschrieben.
| Name | Beschreibung | Anzahl der Flächen |
|---|---|---|
| #Kegel | Ein Kegel mit einer Höhe und einem Durchmesser von 100. Die Basis liegt im Ursprung und der Kegel zeigt in y-Richtung nach oben. | 78 |
| #Würfel | Ein im Ursprung zentrierter Würfel mit 100 langen Seiten entlang x, y und z. | 12 |
| #Zylinder | Ein Zylinder mit 100 Höhe und Durchmesser, der im Ursprung zentriert ist und sich in y-Richtung ausdehnt. | 316 |
| #Rechteck | Ein Rechteck mit 100 Breite und Höhe, das im Ursprung zentriert ist und in der xy-Ebene liegt. | 2 |
| #Kugel | Eine Kugel mit 100 Durchmesser, die im Ursprung zentriert ist. | 4900 |
Benutzerdefinierte Geometrie
Zusätzlich zur Verwendung statischer Netze können Sie einen custom geometry Provider implementieren, der das Modell zur Laufzeit mit benutzerdefinierten Eckpunktdaten versorgt. Im Beispiel für benutzerdefinierte Geometrie finden Sie ein Beispiel dafür, wie Sie ein benutzerdefiniertes Material erstellen und mit Ihrem Modell verwenden können.
Materialien
Ein Modell kann aus mehreren Teilmaschen bestehen, von denen jede ihr eigenes Material haben kann. Das Teilnetz verwendet ein Material aus der Liste materials, das seinem Index entspricht. Wenn die Anzahl der Materialien geringer ist als die Anzahl der Teilmaschen, wird das letzte Material in der Liste für die nachfolgenden Teilmaschen verwendet. Dies wird im Beispiel Untermasche demonstriert.
Sie können die folgenden Materialien mit dem Modellelement verwenden: PrincipledMaterial, DefaultMaterial, und CustomMaterial.
Kommissionierung
Beim Picking wird ein Strahl von einer bestimmten Startposition aus durch die Szene geschickt, um herauszufinden, welche Modelle sich mit diesem Strahl schneiden. In Qt Quick 3D wird der Strahl normalerweise von der Ansicht aus unter Verwendung von 2D-Koordinaten gesendet, die aus einem Touch- oder Mausereignis resultieren. Wenn ein Modell von dem Strahl getroffen wurde, wird pickResult mit einem Handle zu dem Modell und Informationen darüber, wo der Strahl das Modell getroffen hat, zurückgegeben. Bei Modellen, die custom geometry verwenden, ist die Auswahl weniger genau als bei statischen Netzdaten, da die Auswahl nur anhand der bounding volume des Modells erfolgt. Wenn der Strahl durch mehr als ein Modell geht, wird das am nächsten gelegene pickable Modell ausgewählt.
Beachten Sie, dass für Modelle, die pickable sein sollen, die Eigenschaft pickable auf true eingestellt sein muss. Weitere Informationen finden Sie unter Qt Quick 3D - Picking-Beispiel.
Dokumentation der Eigenschaft
bakedLightmap : BakedLightmap
Wenn diese Eigenschaft auf ein gültiges, aktiviertes BakedLightmap Objekt gesetzt ist, erhält das Modell eine Lightmap, die beim Backen der Beleuchtung generiert wird; die Lightmap wird dann dauerhaft gespeichert. Beim Rendern lädt und verwendet das Modell die zugehörige Lightmap. Der Standardwert ist null.
Hinweis: Wenn eine dauerhaft gespeicherte Lightmap für ein Modell erzeugt werden soll, müssen sowohl bakedLightmap als auch usedInBakedLighting gesetzt werden, um anzuzeigen, dass das Modell nicht nur an der Lightmap-Szene teilnimmt, sondern auch eine vollständige Lightmap gebacken und gespeichert werden soll.
Weitere Informationen über das Backen von Lightmaps finden Sie in der Dokumentation Lightmapper.
Diese Eigenschaft ist sowohl beim Backen als auch bei der Verwendung von Lightmaps relevant. Ein konsistenter Zustand zwischen dem Baking-Lauf und den nachfolgenden Läufen, die die generierten Daten verwenden, ist unerlässlich. Wenn Sie beispielsweise den Schlüssel der Lichtkarte ändern, können Sie die zuvor generierten Daten nicht mehr laden. Eine Ausnahme ist enabled, mit der die Verwendung von Lightmaps dynamisch umgeschaltet werden kann (außerhalb des Backlaufs), aber beachten Sie, dass die gerenderten Ergebnisse von den Einstellungen der Lichter bakeMode in der Szene abhängen.
Siehe auch usedInBakedLighting und Lightmapper.
bounds : Bounds [read-only]
Die Grenzen des Modells beschreiben die Ausmaße des Begrenzungsvolumens um das Modell.
Hinweis: Die Begrenzungen sind möglicherweise nicht sofort verfügbar, wenn das Modell erst geladen werden muss.
castsReflections : bool [since 6.4]
Wenn diese Eigenschaft auf true gesetzt ist, wird das Modell durch Reflektionssonden gerendert und ist in den Reflektionen zu sehen.
Diese Eigenschaft wurde in Qt 6.4 eingeführt.
castsShadows : bool
Wenn diese Eigenschaft true lautet, wird die Geometrie dieses Modells beim Rendering für die Schattenkarten verwendet und erzeugt auch Schatten bei gebackener Beleuchtung.
Der Standardwert ist true.
depthBias : real
Enthält die Tiefenabweichung des Modells. Die Tiefenverzerrung wird beim Sortieren von Objekten zum Objektabstand von der Kamera addiert. Dies kann verwendet werden, um die Rendering-Reihenfolge zwischen nahe beieinander liegenden Objekten zu erzwingen, die ansonsten in verschiedenen Frames in unterschiedlicher Reihenfolge gerendert werden könnten. Negative Werte bewirken, dass der Sortierwert näher an die Kamera heranrückt, während positive Werte ihn weiter von der Kamera wegbewegen.
geometry : Geometry
Geben Sie eine benutzerdefinierte Geometrie für das Modell an. Die Model::source muss leer sein, wenn eine benutzerdefinierte Geometrie verwendet wird.
instanceRoot : QtQuick3D::Node
Diese Eigenschaft definiert den Ursprung des Koordinatensystems der Instanz.
Siehe die Übersichtsdokumentation für eine detaillierte Erklärung.
Siehe auch instancing und Instancing.
instancing : QtQuick3D::Instancing
Wenn diese Eigenschaft gesetzt ist, wird das Modell nicht normal gerendert. Stattdessen wird eine Anzahl von Instanzen des Modells gerendert, wie in der Instanztabelle definiert.
Siehe auch Instancing.
instancingLodMax : real
Definiert die maximale Entfernung von der Kamera, in der eine Instanz dieses Modells angezeigt wird. Wird für die Implementierung eines Detailgrads verwendet.
instancingLodMin : real
Legt den Mindestabstand zur Kamera fest, in dem eine Instanz dieses Modells angezeigt wird. Wird für die Implementierung eines Detailgrads verwendet.
inverseBindPoses : List<matrix4x4>
Diese Eigenschaft enthält eine Liste von InverseBindPose-Matrizen, die für die Skelettanimation verwendet werden. Jede inverseBindPose-Matrix bedeutet die Umkehrung der globalen Transformation der jeweiligen Joint::index in skeleton, die anfangs verwendet wird.
Hinweis: Diese Eigenschaft wird nur verwendet, wenn die Model::skeleton gültig ist.
Hinweis: Wenn einige der Matrizen nicht gesetzt sind, werden Identitätswerte verwendet.
Siehe auch Joint::index.
levelOfDetailBias : real [since 6.5]
Diese Eigenschaft ändert die Größe, die das Modell beim Rendern haben muss, 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, wie viel der gerenderten Szene dieses Mesh ausmacht. 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 aus, wenn die Geometrie des Modells Detailebenen enthält.
Diese Eigenschaft wurde in Qt 6.5 eingeführt.
Siehe auch Camera::levelOfDetailBias.
materials : List<QtQuick3D::Material>
Diese Eigenschaft enthält eine Liste von Materialien, die zum Rendern der angegebenen Geometrie verwendet werden. Um etwas zu rendern, muss es mindestens ein Material geben. Normalerweise sollte es ein Material für jedes in der Ausgangsgeometrie enthaltene Sub-Mesh geben.
Siehe auch Qt Quick 3D - Sub-mesh Beispiel.
morphTargets : List<QtQuick3D::MorphTarget>
Diese Eigenschaft enthält eine Liste von MorphTarget, die zum Rendern der angegebenen Geometrie verwendet wird. Meshes sollten mindestens ein Attribut unter Positionen, Normalen, Tangenten, Binormalen, Texturkoordinaten und Vertexfarben für die Morph-Ziele haben.
Siehe auch MorphTarget.
motionVectorEnabled : bool [default: true, since 6.11]
Gibt an, ob das Modell am Bewegungsvektordurchlauf teilnimmt.
Wenn diese Eigenschaft auf true gesetzt ist, trägt das Modell seine Bewegungsinformationen zum Bewegungsvektorpuffer bei. Dies wird von temporalem Anti-Aliasing (TAA) und anderen Effekten verwendet, die auf Bewegungsdaten pro Pixel angewiesen sind.
Wenn es auf false gesetzt ist, wird das Modell von der Erzeugung von Bewegungsvektoren ausgeschlossen.
Diese Eigenschaft wurde in Qt 6.11 eingeführt.
Siehe auch Model::motionVectorScale.
motionVectorScale : real [default: 1.0, since 6.11]
Gibt einen Skalierungsfaktor an, der auf die generierten Bewegungsvektoren des Modells angewendet wird.
Bei einem Wert von 1.0 bleibt die tatsächliche Bewegung des Modells erhalten, während Werte größer als 1.0 die Bewegungsvektoren übertreiben und Werte kleiner als 1.0 sie reduzieren. Dies kann für stilisierte Effekte oder die Feinabstimmung des visuellen Verhaltens in Effekten, die auf den Bewegungsvektorpuffer angewiesen sind, nützlich sein.
Diese Eigenschaft wurde in Qt 6.11 eingeführt.
Siehe auch Model::motionVectorEnabled.
pickable : bool
Diese Eigenschaft steuert, ob das Modell wählbar ist oder nicht. Setzen Sie diese Eigenschaft auf true, um das Modell wählbar zu machen. Standardmäßig sind die Modelle nicht wählbar.
Siehe auch View3D::pick.
receivesReflections : bool
Wenn diese Eigenschaft auf true gesetzt ist, werden die Materialien des Modells mit Reflexionen von einer Reflexionssonde versehen. Befindet sich das Modell in mehr als einer Reflexionssonde zur gleichen Zeit, wird die nächstgelegene Reflexionssonde berücksichtigt.
receivesShadows : bool
Wenn diese Eigenschaft auf true gesetzt ist, berücksichtigen die Materialien des Modells den Schattenbeitrag von schattenwerfenden Lichtern.
Hinweis: Wenn Lightmapping für dieses Modell aktiviert ist, erzeugen vollständig gebackene Lichter, bei denen Light::bakeMode auf Light.BakeModeAll gesetzt ist, immer (gebackene) Schatten auf dem Modell, unabhängig vom Wert dieser Eigenschaft.
Der Standardwert ist true.
skeleton : Skeleton
Enthält das Skelett für das Modell. Das Skelett wird zusammen mit inverseBindPoses für das Skinning verwendet.
Hinweis: Meshes des Modells müssen sowohl Gelenke als auch Gewichtsattribute haben.
Hinweis: Wenn diese Eigenschaft gesetzt ist, ist die Skinning-Animation aktiviert. Das bedeutet, dass Model auf der Grundlage von Skeleton transformiert wird, wobei die globale Transformation des Modells ignoriert wird.
Siehe auch Model::inverseBindPoses und Qt Quick 3D - Simple Skinning Example.
skin : Skin
Enthält das Skelett für das Modell. Das Skelett wird für das Skinning verwendet.
Hinweis: Meshes des Modells müssen sowohl Gelenke als auch Gewichtsattribute haben.
Hinweis: Wenn diese Eigenschaft gesetzt ist, ist die Skinning-Animation aktiviert. Das bedeutet, dass Model auf der Grundlage von Skin::joints transformiert wird und die globale Transformation des Modells ignoriert wird.
Hinweis: Wenn ein Modell sowohl ein Skelett als auch eine Haut hat, wird die Haut verwendet.
Siehe auch Qt Quick 3D - Simple Skinning Example.
source : url
Diese Eigenschaft definiert den Speicherort der Mesh-Datei, die die Geometrie dieses Modells oder eines der unten aufgeführten eingebauten primitiven Meshes enthält, wie unter Mesh format and built-in primitives beschrieben.
- "#Rechteck"
- "#Sphere"
- "#Würfel"
- "#Kegel"
- "#Zylinder"
texelsPerUnit : real [default: 0.0, since 6.10]
Ein Wert größer als Null bedeutet, dass dieser Wert den Lightmapper::texelsPerUnit Wert für dieses spezifische Modell während des Lightmap-Backens überschreibt.
Diese Eigenschaft wurde in Qt 6.10 eingeführt.
Siehe auch Lightmapper::texelsPerUnit.
usedInBakedLighting : bool
Wenn diese Eigenschaft auf true gesetzt ist, trägt das Modell zur gebackenen Beleuchtung bei, wie z.B. Lightmaps, zum Beispiel in Form von Schattenwurf oder indirektem Licht. Diese Einstellung ist unabhängig von der Steuerung der Lightmap-Erzeugung für das Modell, verwenden Sie dazu bakedLightmap.
Der Standardwert ist false.
Hinweis: Der Standardwert ist false, da Designer und Entwickler immer für jedes Modell einzeln prüfen müssen, ob das Objekt geeignet ist, an der gebackenen Beleuchtung teilzunehmen.
Warnung: Modelle mit sich dynamisch ändernden Eigenschaften, z. B. animierte Position, Drehung oder andere Eigenschaften, eignen sich nicht für die Teilnahme an gebackenem Licht.
Weitere Informationen zum Backen von Lightmaps finden Sie in der Dokumentation Lightmapper.
Diese Eigenschaft ist nur beim Baking von Lightmaps relevant. Sie hat keine Auswirkung auf die Verwendung der erzeugten Lichtabbildungen beim Rendern.
Siehe auch Light::bakeMode, bakedLightmap, Lightmapper, und Lightmaps und Globale Beleuchtung.
© 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.