SpotLight QML 类型

在场景中定义聚光灯。 更多...

导入语句import QtQuick3D
继承

Light

属性

详细描述

聚光灯以锥形形状向一个方向发射光线,其形状由 coneAngle 属性定义。当接近 coneAngle 时,光强度减弱。光强度开始减弱的角度由 innerConeAngle 定义。两个角度都用度来表示。

innerConeAngle 内,聚光灯的行为类似于点光源。在那里光强度根据逆平方定律减弱。但是,可以使用 constantFadelinearFadequadraticFade 属性来控制熄灭(和范围)。使用公式计算光衰减:constantFade + distance * (linearFade * 0.01) + distance * (quadraticFade * 0.0001)^2

让我们看一个简单的例子。这里将一个 SpotLight 放在了 Z 轴上的 300 位置,因此位于相机和场景中心之间。默认情况下,光线是沿着 Z 轴发射的。将 brightness 增加到 10,使其看起来更像是典型的聚光灯。

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

旋转与 DirectionalLight 类似。我们想要光线更往右边发射,所以围绕 Y 轴旋转 -20 度。将 coneAngle 设置为 30 而不是默认的 40 来减少锥形。我们还通过将 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
}

有关其他用法示例,请参阅 Qt Quick 3D - 灯光示例

另请参见 DirectionalLightPointLight

属性文档

coneAngle : 实数

该属性定义超过光不影响的场景的裁剪角度(从边缘到边缘)。角度在0到180度之间定义。默认值为40。


constantFade : 实数

该属性是光衰减项的常数因子。默认值为1.0。


innerConeAngle : 实数

该属性定义光强度开始逐渐减小的角度(从边缘到边缘),随着其接近coneAngle。角度在0到180度之间定义。如果值设置大于coneAngle,则其行为将与coneAngle具有相同值。默认值为30。


linearFade : 实数

该属性增加了按照距离灯光的比例减弱灯光的照明效果的速率。默认值为0.0,表示光线没有线性减弱。在这里使用的值在使用之前乘以0.01用于计算光衰减。


quadraticFade : 实数

该属性增加了按照除平方定律的比例减弱灯光的照明效果的速率。默认值为1.0,意味着聚光灯的减弱正好遵循除平方定律,即当物体距离加倍时,光线强度减少到1/4。


© 2024 Qt公司。包含在此处的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版许可的。Qt及其相关标志是芬兰的Qt公司在全球的商标。所有其他商标均为其各自所有者的财产。