Use the Light3D Indirect Energy property in SDFGI
The Indirect Energy property was previously ignored in SDFGI (unlike VoxelGI).
This commit is contained in:
parent
503244d452
commit
2c507cd426
2 changed files with 5 additions and 4 deletions
|
@ -47,7 +47,8 @@
|
|||
The light's strength multiplier (this is not a physical unit). For [OmniLight3D] and [SpotLight3D], changing this value will only change the light color's intensity, not the light's radius.
|
||||
</member>
|
||||
<member name="light_indirect_energy" type="float" setter="set_param" getter="get_param" default="1.0">
|
||||
Secondary multiplier used with indirect light (light bounces). Used with [VoxelGI].
|
||||
Secondary multiplier used with indirect light (light bounces). Used with [VoxelGI] and SDFGI (see [member Environment.sdfgi_enabled]).
|
||||
[b]Note:[/b] This property is ignored if [member light_energy] is equal to [code]0.0[/code], as the light won't be present at all in the GI shader.
|
||||
</member>
|
||||
<member name="light_negative" type="bool" setter="set_negative" getter="is_negative" default="false">
|
||||
If [code]true[/code], the light's effect is reversed, darkening areas and casting bright shadows.
|
||||
|
|
|
@ -1469,7 +1469,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform3D &p_transform, Re
|
|||
lights[idx].color[1] = color.g;
|
||||
lights[idx].color[2] = color.b;
|
||||
lights[idx].type = RS::LIGHT_DIRECTIONAL;
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY);
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY) * storage->light_get_param(li->light, RS::LIGHT_PARAM_INDIRECT_ENERGY);
|
||||
lights[idx].has_shadow = storage->light_has_shadow(li->light);
|
||||
|
||||
idx++;
|
||||
|
@ -1514,7 +1514,7 @@ void RendererSceneGIRD::SDFGI::pre_process_gi(const Transform3D &p_transform, Re
|
|||
lights[idx].color[1] = color.g;
|
||||
lights[idx].color[2] = color.b;
|
||||
lights[idx].type = storage->light_get_type(li->light);
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY);
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY) * storage->light_get_param(li->light, RS::LIGHT_PARAM_INDIRECT_ENERGY);
|
||||
lights[idx].has_shadow = storage->light_has_shadow(li->light);
|
||||
lights[idx].attenuation = storage->light_get_param(li->light, RS::LIGHT_PARAM_ATTENUATION);
|
||||
lights[idx].radius = storage->light_get_param(li->light, RS::LIGHT_PARAM_RANGE);
|
||||
|
@ -1953,7 +1953,7 @@ void RendererSceneGIRD::SDFGI::render_static_lights(RID p_render_buffers, uint32
|
|||
lights[idx].color[0] = color.r;
|
||||
lights[idx].color[1] = color.g;
|
||||
lights[idx].color[2] = color.b;
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY);
|
||||
lights[idx].energy = storage->light_get_param(li->light, RS::LIGHT_PARAM_ENERGY) * storage->light_get_param(li->light, RS::LIGHT_PARAM_INDIRECT_ENERGY);
|
||||
lights[idx].has_shadow = storage->light_has_shadow(li->light);
|
||||
lights[idx].attenuation = storage->light_get_param(li->light, RS::LIGHT_PARAM_ATTENUATION);
|
||||
lights[idx].radius = storage->light_get_param(li->light, RS::LIGHT_PARAM_RANGE);
|
||||
|
|
Loading…
Reference in a new issue