DirectionalLight3D
继承: Light3D < VisualInstance3D < Node3D < Node < Object
来自远处的平行光,如太阳光。
描述
平行光是一种 Light3D 节点,它可以模拟覆盖整个场景的无限数量的平行光线。它用于距离场景较远的强光,以模拟日光或月光。 DirectionalLight3D 变换的世界空间位置(原点)将被忽略。只有基被用于确定光线方向。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
枚举
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 ( ShadowMode value )
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 时才使用。
SkyMode sky_mode = 0
设置该 DirectionalLight3D 是否在天空、场景、或天空和场景中可见。有关选项,请参阅 SkyMode。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.