DirectionalLight

    Directional light from a distance, as from the Sun.

    A directional light is a type of node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used to determine light direction.

    enum ShadowMode:

    • SHADOW_PARALLEL_2_SPLITS = 1 —- Splits the view frustum in 2 areas, each with its own shadow map. This shadow mode is a compromise between SHADOW_ORTHOGONAL and in terms of performance.

    • SHADOW_PARALLEL_4_SPLITS = 2 —- Splits the view frustum in 4 areas, each with its own shadow map. This is the slowest directional shadow mode.


    enum ShadowDepthRange:

    • SHADOW_DEPTH_RANGE_STABLE = 0 —- Keeps the shadow stable when the camera moves, at the cost of lower effective shadow resolution.

    • SHADOW_DEPTH_RANGE_OPTIMIZED = 1 —- Tries to achieve maximum shadow resolution. May result in saw effect on shadow edges. This mode typically works best in games where the camera will often move at high speeds, such as most racing games.

    • directional_shadow_bias_split_scale

    Default

    0.25

    Setter

    set_param(value)

    Getter

    get_param()

    Amount of extra bias for shadow splits that are far away. If self-shadowing occurs only on the splits far away, increasing this value can fix them. This is ignored when directional_shadow_mode is .


    • bool directional_shadow_blend_splits

    Default

    false

    Setter

    set_blend_splits(value)

    Getter

    is_blend_splits_enabled()

    If , shadow detail is sacrificed in exchange for smoother transitions between splits. Enabling shadow blend splitting also has a moderate performance cost. This is ignored when is SHADOW_ORTHOGONAL.


    Optimizes shadow rendering for detail versus movement. See .


    • float directional_shadow_max_distance

    Default

    100.0

    Setter

    set_param(value)

    Getter

    get_param()

    The maximum distance for shadow splits. Increasing this value will make directional shadows visible from further away, at the cost of lower overall shadow detail and performance (since more objects need to be included in the directional shadow rendering).


    • directional_shadow_mode

    2

    Setter

    set_shadow_mode(value)

    Getter

    get_shadow_mode()

    The light’s shadow rendering algorithm. See ShadowMode.


    • directional_shadow_normal_bias

    Can be used to fix special cases of self shadowing when objects are perpendicular to the light.


    • float directional_shadow_split_1

    Default

    0.1

    Setter

    set_param(value)

    Getter

    get_param()

    The distance from camera to shadow split 1. Relative to . Only used when directional_shadow_mode is or SHADOW_PARALLEL_4_SPLITS.


    • directional_shadow_split_2

    Default

    Setter

    set_param(value)

    Getter

    get_param()

    The distance from shadow split 1 to split 2. Relative to directional_shadow_max_distance. Only used when is SHADOW_PARALLEL_2_SPLITS or .


    • float directional_shadow_split_3