本页内容

DirectionalLight QML Type

在场景中定义一盏定向光。更多...

Import Statement: import QtQuick3D
Inherits:

Light

属性

详细说明

定向光源从位于无限远处且无法辨识的来源向一个方向发射光线。这类似于现实生活中的阳光。定向光源的照射范围无限,且光强不会衰减。

如果启用了“castsShadow ”选项,阴影将与光线方向平行。

方向光实际上没有具体位置,因此移动它不会产生任何影响。光线将始终沿光体的 Z 轴方向发射。

沿其 X 或 Y 轴旋转光源会改变光线发射的方向。

对定向光进行缩放仅在以下情况下会产生效果:

  • 如果 Z 缩放设置为负数,光线将沿相反方向发射。
  • 如果任一轴的缩放值设置为 0,光线将沿世界坐标系的 Z 轴发射。

    注意: 此时旋转 光源将不会产生任何效果。

让我们来看一个简单的示例:

import QtQuick
import QtQuick3D
View3D {
    anchors.fill: parent

    PerspectiveCamera { z: 600 }

    DirectionalLight {
    }

    Model {
        source: "#Sphere"
        scale: Qt.vector3d(4, 4, 4)
        materials: PrincipledMaterial {
            baseColor: "#40c060"
            roughness: 0.1 // make specular highlight visible
        }
    }
}

此处,DirectionalLight使用默认的white 颜色,沿DirectionalLight节点的Z轴方向发光。

绿色圆圈表示沿Z轴方向发出的光

绕X轴旋转60度后,结果如下所示。光线不再直接沿Z轴方向发射,而是向“下方”偏转了60度:

DirectionalLight {
    eulerRotation.x: 60
}

带阴影的绿色圆圈,显示了旋转后的定向光源

更多使用示例,请参阅《Qt Quick 3D - 灯光示例》。

另请参阅 PointLight 、SpotLight 以及“阴影映射”。

属性文档

csmBlendRatio : real [since 6.8]

此属性用于定义任何级联效果的阴影应与前一个阴影混合的程度。

取值范围:[0.0, 1.0]

默认值:0.05

该属性自 Qt 6.8 起引入。

csmNumSplits : int [since 6.8]

此属性定义了在渲染阴影贴图时,视锥体应被划分为多少个部分。若不进行划分,则阴影贴图将渲染为覆盖所有投射阴影和接收阴影物体的边界框。

范围:[0, 3]

默认值:0

该属性在 Qt 6.8 中引入。

另请参阅 csmSplit1 、csmSplit2 以及csmSplit3 。

csmSplit1 : real [since 6.8]

当 CSM 处于活动状态时,此属性定义了阴影贴图拆分的第一级级联将在何处发生。

范围:[0.0, 1.0]

默认值:0.1

注意: 仅当DirectionalLight::csmNumSplits 大于0 时,此 属性才生效。

该属性自 Qt 6.8 起引入。

另请参阅 csmSplit2 和csmSplit3 。

csmSplit2 : real [since 6.8]

当 CSM 处于活动状态时,此属性定义了阴影贴图拆分中的第二次级联将在何处发生。

范围:[0.0, 1.0]

默认值:0.25

注意: 仅当DirectionalLight::csmNumSplits 大于1 时,此 属性才生效。

该属性自 Qt 6.8 起引入。

另请参阅 csmSplit1 和csmSplit3 。

csmSplit3 : real [since 6.8]

当 CSM 处于活动状态时,此属性定义了阴影贴图拆分中的第三级级联将在何处发生。

范围:[0.0, 1.0]

默认值:0.5

注意: 仅当DirectionalLight::csmNumSplits 大于2 时,此 属性才会生效。

该属性自 Qt 6.8 起引入。

另请参阅 csmSplit1 和csmSplit2 。

lockShadowmapTexels : bool [since 6.9]

启用此属性后,阴影贴图的纹素在世界坐标系中的位置将被“锁定”,从而消除阴影边缘的闪烁现象,但代价是阴影贴图的纹素尺寸会增大。其工作原理是针对每个级联使用大小统一且纹素对齐的阴影贴图。

默认值:false

该属性于 Qt 6.9 中引入。

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