En esta página

PointLight QML Type

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

Import Statement: import QtQuick3D
Inherits:

Light

Propiedades

Descripción detallada

La luz puntual puede describirse como una esfera, que emite luz con igual intensidad en todas las direcciones desde el centro de la luz. Esto es similar a la forma en que una bombilla emite luz.

Rotar o escalar una luz puntual no tiene ningún efecto. Mover una luz puntual cambiará la posición desde la que se emite la luz.

Por defecto, la intensidad de una luz puntual disminuye según la ley cuadrática inversa. Sin embargo, la atenuación (y el rango) 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^2 * (quadraticFade * 0,0001)

Un ejemplo sencillo: sombrear una esfera de tres formas distintas

Tomemos una escena que contenga una esfera delante de un rectángulo a escala en el fondo. El color base por defecto del PrincipledMaterial del rectángulo es el blanco.

Sin ninguna luz y desactivando el sombreado relacionado con la luz para las dos mallas, obtenemos lo siguiente:

import QtQuick
import QtQuick3D
View3D {
    anchors.fill: parent

    PerspectiveCamera { z: 600 }

    Model {
        source: "#Rectangle"
        scale: Qt.vector3d(10, 10, 10)
        z: -100
        materials: PrincipledMaterial {
            lighting: PrincipledMaterial.NoLighting
        }
    }

    Model {
        source: "#Sphere"
        scale: Qt.vector3d(2, 2, 2)
        materials: PrincipledMaterial {
            lighting: PrincipledMaterial.NoLighting
            baseColor: "#40c060"
            roughness: 0.1
        }
    }
}

Círculo verde con fondo blanco

Añadiendo una luz direccional, emitiendo por defecto hacia abajo en el eje Z, obtenemos lo siguiente:

import QtQuick
import QtQuick3D
View3D {
    anchors.fill: parent

    PerspectiveCamera { z: 600 }

    DirectionalLight { }

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

Círculo verde con borde negro

¿Y si ahora sustituimos DirectionalLight por:

PointLight {
    z: 300
}

El PointLight de color blanco aquí se mueve en el eje Z de modo que se encuentra a medio camino entre la cámara y el centro de la escena. A diferencia de DirectionalLight, la rotación del PointLight no importa, mientras que su posición sí es significativa. La disminución de la intensidad es visible aquí, especialmente en la malla rectangular del fondo.

Círculo de gradiente verde con borde negro y fondo de gradiente gris oscuro que muestra la atenuación de la luz puntual.

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

Ver también DirectionalLight, SpotLight, y Mapeado de Sombras.

Documentación de propiedades

constantFade : real

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

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.