SpotLight QML 类型
在场景中定义聚光灯。 更多...
导入语句 | import QtQuick3D |
继承 |
属性
- coneAngle : real
- constantFade : real
- innerConeAngle : real
- linearFade : real
- quadraticFade : real
详细描述
聚光灯以锥形形状向一个方向发射光线,其形状由 coneAngle 属性定义。当接近 coneAngle 时,光强度减弱。光强度开始减弱的角度由 innerConeAngle 定义。两个角度都用度来表示。
在 innerConeAngle 内,聚光灯的行为类似于点光源。在那里光强度根据逆平方定律减弱。但是,可以使用 constantFade、linearFade 和 quadraticFade 属性来控制熄灭(和范围)。使用公式计算光衰减: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 - 灯光示例。
另请参见 DirectionalLight 和 PointLight。
属性文档
coneAngle : 实数 |
该属性定义超过光不影响的场景的裁剪角度(从边缘到边缘)。角度在0到180度之间定义。默认值为40。
constantFade : 实数 |
该属性是光衰减项的常数因子。默认值为1.0。
innerConeAngle : 实数 |
linearFade : 实数 |
该属性增加了按照距离灯光的比例减弱灯光的照明效果的速率。默认值为0.0
,表示光线没有线性减弱。在这里使用的值在使用之前乘以0.01
用于计算光衰减。
quadraticFade : 实数 |
该属性增加了按照除平方定律的比例减弱灯光的照明效果的速率。默认值为1.0,意味着聚光灯的减弱正好遵循除平方定律,即当物体距离加倍时,光线强度减少到1/4。
© 2024 Qt公司。包含在此处的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版许可的。Qt及其相关标志是芬兰的Qt公司在全球的商标。所有其他商标均为其各自所有者的财产。