SpotLight QML Type
Definiert einen Scheinwerfer in der Szene. Mehr...
Import Statement: | import QtQuick3D |
Inherits: |
Eigenschaften
- coneAngle : real
- constantFade : real
- innerConeAngle : real
- linearFade : real
- quadraticFade : real
Ausführliche Beschreibung
Der Lichtpunkt strahlt das Licht kegelförmig in eine Richtung ab, die durch die Eigenschaft coneAngle definiert ist. Die Lichtintensität nimmt bei Annäherung an den coneAngle ab. Der Winkel, ab dem die Lichtintensität abnimmt, wird durch innerConeAngle definiert. Beide Winkel werden in Grad angegeben.
Innerhalb des innerConeAngle verhält sich das Punktlicht ähnlich wie das Punktlicht. Dort nimmt die Lichtintensität nach dem inversen quadratischen Gesetz ab. Die Abschwächung (und die Reichweite) kann jedoch mit den Eigenschaften constantFade, linearFade und quadraticFade gesteuert werden. Die Lichtabschwächung wird nach folgender Formel berechnet: constantFade + distance
* (linearFade * 0.01) + distance
* (quadraticFade * 0.0001)^2
Schauen wir uns ein einfaches Beispiel an. Hier wird ein SpotLight bei 300 auf der Z-Achse platziert, also auf halbem Weg zwischen der Kamera und dem Zentrum der Szene. Standardmäßig strahlt das Licht in Richtung der Z-Achse ab. Die brightness wird auf 10 erhöht, damit es mehr wie ein typisches SpotLight aussieht.
import QtQuick import QtQuick3D View3D { anchors.fill: parent PerspectiveCamera { z: 600 } SpotLight { z: 300 brightness: 10 ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0) } Model { source: "#Rectangle" scale: Qt.vector3d(10, 10, 10) z: -100 materials: PrincipledMaterial { } } Model { source: "#Sphere" scale: Qt.vector3d(2, 2, 2) materials: PrincipledMaterial { baseColor: "#40c060" roughness: 0.1 } } }
Die Drehung erfolgt ähnlich wie bei DirectionalLight. Hier wollen wir, dass das Licht mehr nach rechts abstrahlt, also drehen wir es um die Y-Achse um -20 Grad. Der Kegel wird verkleinert, indem coneAngle auf 30 statt auf den Standardwert 40 gesetzt wird. Außerdem beginnt die Intensität früher zu schwinden, indem innerConeAngle auf 10 gesetzt wird.
SpotLight { z: 300 brightness: 10 ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0) eulerRotation.y: -20 coneAngle: 30 innerConeAngle: 10 }
Weitere Anwendungsbeispiele finden Sie unter Qt Quick 3D - Lights Example.
Siehe auch DirectionalLight, PointLight, und Schattenabbildung.
Eigenschaft Dokumentation
coneAngle : real |
Diese Eigenschaft definiert den Abschneidewinkel (von Kante zu Kante), über den hinaus das Licht die Szene nicht mehr beeinflusst. Sie wird in Grad zwischen 0
und 180
definiert. Der Standardwert ist 40
.
Hinweis: Wenn sich der Kegelwinkel 180
Grad nähert, beginnt sich die Schattenqualität zu verschlechtern. Ein Wert unter 170
wird daher empfohlen.
constantFade : real |
Diese Eigenschaft ist ein konstanter Faktor des Abschwächungsterms des Lichts. Der Standardwert ist 1,0.
innerConeAngle : real |
Diese Eigenschaft definiert den Winkel (von Kante zu Kante), bei dem die Lichtintensität allmählich abnimmt, wenn sie sich coneAngle nähert. Definiert in Grad zwischen 0 und 180. Wenn der Wert größer als coneAngle eingestellt wird, verhält er sich so, als hätte er denselben Wert wie coneAngle. Der Standardwert ist 30.
linearFade : real |
Diese Eigenschaft erhöht die Rate, mit der der Lichteffekt das Licht im Verhältnis zum Abstand zum Licht abdunkelt. Der Standardwert ist 0.0
, d. h. das Licht wird nicht linear abgeblendet. Der hier verwendete Wert wird mit 0.01
multipliziert, bevor er zur Berechnung der Lichtabschwächung verwendet wird.
quadraticFade : real |
Diese Eigenschaft erhöht die Rate, mit der der Beleuchtungseffekt das Licht im Verhältnis zum inversen Quadratgesetz dimmt. Der Standardwert ist 1,0, was bedeutet, dass die Lichtabschwächung genau dem inversen quadratischen Gesetz folgt, d. h. wenn sich der Abstand zu einem Objekt verdoppelt, sinkt die Lichtintensität auf 1/4. Der hier verwendete Wert wird mit 0.0001
multipliziert, bevor er zur Berechnung der Lichtabschwächung verwendet wird.
© 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.