Auf dieser Seite

SpotLight QML Type

Definiert einen Spot in der Szene. Mehr...

Import Statement: import QtQuick3D
Inherits:

Light

Eigenschaften

Ausführliche Beschreibung

Der Spot strahlt Licht in einer kegelförmigen Form in eine Richtung aus, die durch die Eigenschaft „ coneAngle “ definiert wird. Die Lichtintensität nimmt ab, je näher man dem „ coneAngle “ kommt. Der Winkel, ab dem die Lichtintensität abzunehmen beginnt, wird durch „ innerConeAngle “ definiert. Beide Winkel werden in Grad angegeben.

Innerhalb des „ innerConeAngle “ verhält sich der Spot ähnlich wie eine Punktlichtquelle. Dort nimmt die Lichtintensität gemäß dem Abstandsgesetz ab. Das Ausblenden (und die Reichweite) kann jedoch mit den Eigenschaften „ constantFade “, „ linearFade “ und „ quadraticFade “ gesteuert werden. Die Lichtdämpfung wird anhand der folgenden 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 Szenenmittelpunkt. Standardmäßig strahlt das Licht in Richtung der Z-Achse. Der Wert für „ brightness “ wird auf 10 erhöht, damit es eher wie ein typisches Spotlicht 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
        }
    }
}

Grüne Kugel mit Visualisierung des Strahlwinkels des Scheinwerfers

Rotationen erfolgen ähnlich wie bei „ DirectionalLight “. Hier soll das Licht stärker nach rechts strahlen, daher drehen wir es um -20 Grad um die Y-Achse. Der Lichtkegel wird verkleinert, indem „ coneAngle “ statt des Standardwerts 40 auf 30 gesetzt wird. Außerdem sorgen wir dafür, dass die Intensität früher abnimmt, indem wir „ innerConeAngle “ auf 10 ändern.

SpotLight {
    z: 300
    brightness: 10
    ambientColor: Qt.rgba(0.1, 0.1, 0.1, 1.0)
    eulerRotation.y: -20
    coneAngle: 30
    innerConeAngle: 10
}

Grüne Kugel mit innerem und äußerem Abstrahlwinkel des Scheinwerfers

Weitere Anwendungsbeispiele finden Sie unter Qt Quick 3D – Beispiel „Lights“.

Siehe auch DirectionalLight, PointLight und Shadow Mapping.

Dokumentation zu den Eigenschaften

coneAngle : real

Diese Eigenschaft definiert den Abschneidewinkel (von Kante zu Kante), jenseits dessen das Licht keinen Einfluss mehr auf die Szene hat. Er wird in Grad zwischen 0 und 180 angegeben. Der Standardwert ist 40.

Hinweis: Wenn sich der Kegelwinkel 180 Grad nähert, verschlechtert sich die Schattenqualität allmählich. Daher wird ein Wert unter 170 empfohlen.

constantFade : real

Diese Eigenschaft ist ein konstanter Faktor des Dämpfungsterms des Lichts. Der Standardwert beträgt 1,0.

innerConeAngle : real

Diese Eigenschaft definiert den Winkel (von Kante zu Kante), ab dem die Lichtintensität allmählich abnimmt, je näher sie „ coneAngle “ kommt. Der Wert wird in Grad zwischen 0 und 180 angegeben. Wenn der Wert größer als „ coneAngle “ eingestellt ist, verhält sich die Eigenschaft so, als hätte sie denselben Wert wie „ coneAngle “. Der Standardwert beträgt 30.

linearFade : real

Diese Eigenschaft erhöht die Geschwindigkeit, mit der der Lichteffekt die Lichtstärke proportional zur Entfernung zur Lichtquelle dämpft. Der Standardwert ist „ 0.0 “, was bedeutet, dass das Licht keine lineare Dämpfung aufweist. Der hier verwendete Wert wird mit „ 0.01 “ multipliziert, bevor er zur Berechnung der Lichtdämpfung herangezogen wird.

quadraticFade : real

Diese Eigenschaft erhöht die Geschwindigkeit, mit der der Lichteffekt die Lichtintensität proportional zum Kehrwert des Quadrats der Entfernung dämpft. Der Standardwert beträgt 1,0, was bedeutet, dass die Abnahme der Lichtintensität des Spotlichts genau dem Abstandsgesetz folgt, d. h., wenn sich der Abstand zu einem Objekt verdoppelt, sinkt die Lichtintensität auf ein Viertel. Der hier verwendete Wert wird mit „ 0.0001 “ multipliziert, bevor er zur Berechnung der Lichtabschwächung herangezogen wird.

© 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.