DirectionalLight

Inherits: Light < VisualInstance < CullInstance < Spatial < Node < Object

来自远处的平行光源,如太阳光。

描述

平行光是一种 Light 类型的节点,它可以模拟出覆盖整个场景的无限多的平行光线。可以用作离场景很远、具有强烈强度的灯光,模拟太阳光或月光。DirectionalLight 变换的世界空间坐标(原点)会被忽略。只有基点会被用来确定光线方向。

教程

属性

float

directional_shadow_bias_split_scale

0.25

bool

directional_shadow_blend_splits

false

ShadowDepthRange

directional_shadow_depth_range

0

float

directional_shadow_max_distance

100.0

ShadowMode

directional_shadow_mode

2

float

directional_shadow_normal_bias

0.8

float

directional_shadow_split_1

0.1

float

directional_shadow_split_2

0.2

float

directional_shadow_split_3

0.5

float

shadow_bias

0.1 (overrides Light)

枚举

enum ShadowMode:

  • SHADOW_ORTHOGONAL = 0 —- 从正交的角度渲染整个场景的阴影图。这是最快的方向性阴影模式。可能会导致近距离物体的阴影更模糊。

  • SHADOW_PARALLEL_2_SPLITS = 1 —- 将视图分割成2个区域,每个区域都有自己的阴影图。这个阴影模式是SHADOW_ORTHOGONALSHADOW_PARALLEL_4_SPLITS在性能上的折中。

  • SHADOW_PARALLEL_4_SPLITS = 2 —- 将视图frustum分成4个区域,每个区域都有自己的阴影图。这是最慢的方向性阴影模式。


enum ShadowDepthRange:

  • SHADOW_DEPTH_RANGE_STABLE = 0 —- 当相机移动时,保持影子稳定,但代价是降低有效影子分辨率。

  • SHADOW_DEPTH_RANGE_OPTIMIZED = 1 —- 尝试实现最大的阴影分辨率。可能导致阴影边缘出现锯齿效果。此模式通常在相机经常高速移动的游戏中效果最好,例如大多数赛车游戏。

属性说明

  • float directional_shadow_bias_split_scale

Default

0.25

Setter

set_param(value)

Getter

get_param()

远处阴影分裂的额外偏置量。如果自身阴影只产生远处的分裂,增加这个值可以修复它们。


  • bool directional_shadow_blend_splits

Default

false

Setter

set_blend_splits(value)

Getter

is_blend_splits_enabled()

如果true,则会牺牲阴影细节,以换取更平滑的分割之间的过渡。


Default

0

Setter

set_shadow_depth_range(value)

Getter

get_shadow_depth_range()

优化阴影渲染的细节与运动。参阅ShadowDepthRange


  • float directional_shadow_max_distance

Default

100.0

Setter

set_param(value)

Getter

get_param()

阴影分割的最大距离。


Default

2

Setter

set_shadow_mode(value)

Getter

get_shadow_mode()

灯光的阴影渲染算法。参阅ShadowMode


  • float directional_shadow_normal_bias

Default

0.8

Setter

set_param(value)

Getter

get_param()

当物体垂直于光线时,可用于修复自身阴影的特殊情况。


  • float directional_shadow_split_1

Default

0.1

Setter

set_param(value)

Getter

get_param()

相机到影子分割1的距离。相对于directional_shadow_max_distance。只有当directional_shadow_modeSHADOW_PARALLEL_2_SPLITSSHADOW_PARALLEL_4_SPLITS时才使用。


  • float directional_shadow_split_2

Default

0.2

Setter

set_param(value)

Getter

get_param()

阴影分割1到分割2的距离。相对于directional_shadow_max_distance。仅在directional_shadow_modeSHADOW_PARALLEL_2_SPLITSSHADOW_PARALLEL_4_SPLITS时使用。


  • float directional_shadow_split_3

Default

0.5

Setter

set_param(value)

Getter

get_param()

从影子分割2到分割3的距离。相对于directional_shadow_max_distance。只有当directional_shadow_modeSHADOW_PARALLEL_4_SPLITS时才使用。