DirectionalLight¶
继承: Light < VisualRender < Item3D < Item < Object
来自远处的方向光,如来自太阳的光。
描述¶
定向光是一种对覆盖整个场景的无限数量的平行光线进行建模的Light节点类型,用于位于远离场景的强度较强的光源,用于对阳光或月光进行建模,DirectionalLight变换(原点)的世界空间位置被忽略,仅使用基础来确定光线方向。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
枚举¶
enum ShadowMode: 🔗
ShadowMode SHADOW_ORTHOGONAL = 0
从正交的角度呈现整个场景的阴影贴图。这是最快的方向阴影模式。可能会导致靠近物体的阴影更加模糊。
ShadowMode SHADOW_PARALLEL_2_SPLITS = 1
将视图截头体拆分为2个区域,每个区域都有自己的阴影贴图,这种阴影模式在性能方面是SHADOW_ORTHOGONAL和SHADOW_PARALLEL_4_SPLITS的折衷。
ShadowMode SHADOW_PARALLEL_4_SPLITS = 2
将视图截头体拆分为4个区域,每个区域都有自己的阴影贴图。这是最慢的方向阴影模式。
enum SkyMode: 🔗
SkyMode SKY_MODE_LIGHT_AND_SKY = 0
使光线在场景照明和天空渲染中都可见。
SkyMode SKY_MODE_LIGHT_ONLY = 1
使光线仅在场景照明中可见(包括直接照明和全局照明)。使用此模式时,天空着色器将看不到光线。
SkyMode SKY_MODE_SKY_ONLY = 2
使光线仅对天空着色器可见。使用此模式时,光线不会将光线投射到场景中(通过直接照明或通过全局照明),但可以通过天空着色器访问。这可能很有用,例如,当您想控制天空效果而不照亮场景时(例如,在夜间循环中)。
属性说明¶
bool directional_shadow_blend_splits = false 🔗
如果true,则会牺牲阴影细节以换取拆分之间的平滑过渡。启用阴影混合拆分也有适度的性能成本。当directional_shadow_mode为SHADOW_ORTHOGONAL时,这将被忽略。
float directional_shadow_fade_start = 0.8 🔗
directional_shadow_max_distance在该点阴影开始褪色的比例。在directional_shadow_max_distance,阴影将消失。默认值是平滑褪色和远处阴影可见性之间的平衡。如果摄像机移动速度快,directional_shadow_max_distance低,考虑将directional_shadow_fade_start降低到0.8以下,以使阴影过渡不那么明显。另一方面,如果您调整directional_shadow_max_distance以覆盖整个场景,您可以将directional_shadow_fade_start设置为1.0,以防止阴影在远处褪色(它会突然被切断)。
float directional_shadow_max_distance = 100.0 🔗
阴影分割的最大距离。增加此值将使方向阴影从更远的地方可见,但代价是整体阴影细节和性能降低(因为方向阴影渲染中需要包含更多对象)。
ShadowMode directional_shadow_mode = 2 🔗
void set_shadow_mode(value: ShadowMode)
ShadowMode get_shadow_mode()
光影渲染算法。参见ShadowMode。
float directional_shadow_pancake_size = 20.0 🔗
设置方向阴影煎饼的大小。煎饼抵消阴影的摄像机平截头体的开始,为阴影提供更高的有效深度分辨率。但是,高煎饼尺寸会导致靠近平截头体边缘的大型物体的阴影中出现伪影。减小煎饼尺寸会有所帮助。将尺寸设置为0会关闭煎饼效果。
float directional_shadow_split_1 = 0.1 🔗
摄像机到阴影分割的距离1.相对于directional_shadow_max_distance,仅在directional_shadow_mode为SHADOW_PARALLEL_2_SPLITS或SHADOW_PARALLEL_4_SPLITS时使用。
float directional_shadow_split_2 = 0.2 🔗
阴影分割1到分割2的距离。相对于directional_shadow_max_distance。仅在directional_shadow_mode为SHADOW_PARALLEL_4_SPLITS时使用。
float directional_shadow_split_3 = 0.5 🔗
阴影分割2到分割3的距离。相对于directional_shadow_max_distance。仅在directional_shadow_mode为SHADOW_PARALLEL_4_SPLITS时使用。
设置此DirectionalLight是否在天空、场景中可见,或者在天空和场景中都可见。有关选项,请参阅SkyMode。