Sur cette page

SpotLight QML Type

Définit un projecteur dans la scène. En savoir plus...

Import Statement: import QtQuick3D
Inherits:

Light

Propriétés

Description détaillée

Le projecteur émet de la lumière dans une seule direction selon un faisceau conique, défini par la propriété « coneAngle ». L'intensité lumineuse diminue à mesure que l'on s'approche du « coneAngle ». L'angle à partir duquel l'intensité lumineuse commence à diminuer est défini par la propriété « innerConeAngle ». Ces deux angles sont exprimés en degrés.

À l’intérieur de l’ innerConeAngle, le projecteur se comporte de manière similaire à une source lumineuse ponctuelle. L'intensité lumineuse y diminue selon la loi de l'inverse des carrés. Cependant, l'atténuation (et la portée) peuvent être contrôlées à l'aide des propriétés « constantFade », « linearFade » et « quadraticFade ». L'atténuation de la lumière est calculée à l'aide de la formule suivante : constantFade + distance * (linearFade * 0,01) + distance * (quadraticFade * 0,0001)^2

Prenons un exemple simple. Ici, un SpotLight est placé à 300 sur l’axe Z, soit à mi-chemin entre la caméra et le centre de la scène. Par défaut, la lumière est émise dans la direction de l’axe Z. L’ brightness est augmenté à 10 pour que cela ressemble davantage à un spot classique.

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
        }
    }
}

Sphère verte avec visualisation de l'angle du cône de lumière d'un projecteur

Les rotations s'effectuent de la même manière que l'DirectionalLight. Ici, nous souhaitons que la lumière soit davantage orientée vers la droite ; nous effectuons donc une rotation de -20 degrés autour de l'axe Y. Le cône est réduit en définissant coneAngle sur 30 au lieu de la valeur par défaut de 40. Nous faisons également en sorte que l'intensité commence à diminuer plus tôt, en modifiant innerConeAngle à 10.

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

Sphère verte avec angles de cône intérieur et extérieur du projecteur

Pour d’autres exemples d’utilisation, consultez l’exemple «Qt Quick 3D - Lights ».

Voir également DirectionalLight, PointLight et Shadow Mapping.

Documentation des propriétés

coneAngle : real

Cette propriété définit l'angle de coupure (d'un bord à l'autre) au-delà duquel la lumière n'affecte plus la scène. Elle est exprimée en degrés, dans une plage comprise entre 0 et 180. La valeur par défaut est 40.

Remarque : lorsque l'angle du cône approche 180 degrés, la qualité des ombres commence à se dégrader. Il est donc recommandé d'utiliser une valeur inférieure à 170.

constantFade : real

Cette propriété correspond à un facteur constant du terme d'atténuation de la lumière. La valeur par défaut est 1,0.

innerConeAngle : real

Cette propriété définit l'angle (d'un bord à l'autre) à partir duquel l'intensité lumineuse commence à diminuer progressivement à mesure qu'elle s'approche de coneAngle. Elle est exprimée en degrés, entre 0 et 180. Si la valeur définie est supérieure à coneAngle, elle se comportera comme si elle avait la même valeur que coneAngle. La valeur par défaut est 30.

linearFade : real

Cette propriété augmente la vitesse à laquelle l'effet d'éclairage atténue la lumière proportionnellement à la distance par rapport à la source lumineuse. La valeur par défaut est « 0.0 », ce qui signifie que la lumière ne s'atténue pas de manière linéaire. La valeur utilisée ici est multipliée par « 0.01 » avant d'être utilisée pour calculer l'atténuation de la lumière.

quadraticFade : real

Cette propriété augmente la vitesse à laquelle l'effet d'éclairage atténue la lumière selon la loi de l'inverse des carrés. La valeur par défaut est 1,0, ce qui signifie que l'atténuation du spot suit exactement la loi de l'inverse des carrés : ainsi, lorsque la distance à un objet double, l'intensité lumineuse diminue d'un quart. La valeur utilisée ici est multipliée par 0.0001 avant d'être utilisée pour calculer l'atténuation de la lumière.

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