En esta página

SpotLight QML Type

Define una luz puntual en la escena. Más...

Import Statement: import QtQuick3D
Inherits:

Light

Propiedades

Descripción detallada

El punto de luz emite luz hacia una dirección en forma de cono, que se define mediante la propiedad coneAngle. La intensidad de la luz disminuye al acercarse al coneAngle. El ángulo en el que la intensidad de la luz empieza a disminuir viene definido por innerConeAngle. Ambos ángulos se definen en grados.

Dentro de innerConeAngle, la luz puntual se comporta de forma similar a la luz puntual. La intensidad de la luz disminuye según la ley del cuadrado inverso. Sin embargo, la atenuación (y el alcance) pueden controlarse con las propiedades constantFade, linearFade, y quadraticFade. La atenuación de la luz se calcula mediante la fórmula constantFade + distance * (linearFade * 0,01) + distance * (quadraticFade * 0,0001)^2

Veamos un ejemplo sencillo. Aquí se coloca un SpotLight a 300 en el eje Z, es decir, a medio camino entre la cámara y el centro de la escena. Por defecto la luz emite en la dirección del eje Z. El brightness se incrementa a 10 para que se parezca más a una luz puntual típica.

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

Esfera verde con visualización del ángulo del cono del foco

Las rotaciones ocurren de forma similar a DirectionalLight. Aquí queremos que la luz emita más hacia la derecha, así que rotamos alrededor del eje Y en -20 grados. El cono se reduce ajustando coneAngle a 30 en lugar de los 40 por defecto. También hacemos que la intensidad empiece a disminuir antes, cambiando innerConeAngle a 10.

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

Esfera verde con ángulos de cono interior y exterior de foco

Para más ejemplos de uso, vea Qt Quick 3D - Ejemplo de Luces.

Vea también DirectionalLight, PointLight, y Mapeado de Sombras.

Documentación de propiedades

coneAngle : real

Esta propiedad define el ángulo de corte (de borde a borde) más allá del cual la luz no afecta a la escena. Se define en grados entre 0 y 180. El valor por defecto es 40.

Nota: Cuando el ángulo del cono se acerca a 180 grados la calidad de la sombra empezará a deteriorarse. Por tanto, se recomienda un valor inferior a 170.

constantFade : real

Esta propiedad es el factor constante del término de atenuación de la luz. El valor por defecto es 1.0.

innerConeAngle : real

Esta propiedad define el ángulo (de borde a borde) en el que la intensidad de la luz empieza a disminuir gradualmente a medida que se acerca a coneAngle. Se define en grados entre 0 y 180. Si el valor se establece mayor que coneAngle, se comportará como si tuviera el mismo valor que coneAngle. El valor por defecto es 30.

linearFade : real

Esta propiedad aumenta la velocidad a la que el efecto de iluminación atenúa la luz en proporción a la distancia a la luz. El valor por defecto es 0.0, lo que significa que la luz no tiene atenuación lineal. El valor utilizado aquí se multiplica por 0.01 antes de ser utilizado para calcular la atenuación de la luz.

quadraticFade : real

Esta propiedad aumenta la velocidad a la que el efecto de iluminación atenúa la luz en proporción a la ley del cuadrado inverso. El valor por defecto es 1.0, lo que significa que la atenuación de la luz puntual sigue exactamente la ley del cuadrado inverso, es decir, cuando la distancia a un objeto se duplica la intensidad de la luz disminuye a 1/4. El valor utilizado aquí se multiplica por 0.0001 antes de ser utilizado para calcular la atenuación de la luz.

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