diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-11-15 16:44:45 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-11-15 20:16:30 +0300 |
commit | 516e000aa9762c6b19c64ce46e5dd458cd04a1fb (patch) | |
tree | daef7a7f7e8211e212aa24bc9a8a8322d7eef25f /source/blender/makesrna/intern/rna_lamp.c | |
parent | d082b18d877f2da661ee2a48fdf3c69d67406e86 (diff) |
Eevee: Add Light Threshold value
This is an important change. Starting from now, all lights have a finite
influence radius (similar to the old sphere option for BI).
In order to avoid costly setup time, this distance is first computed
automatically based on a light threshold. The distance is computed
at the light origin and using the inverse square falloff. The setting
can be found inside the render settings panel > shadow tab.
This light threshold does not take the light shape into account an may not
suit every case. That's why we provide a per lamp override where you can
just set the cutt off distance (Light Properties Panel > Light >
Custom Distance).
The influence distance is also used as shadow far clip distance.
This influence distance does not concerns sun lights that still have a
far clip distance.
---
This change is important because it makes it possible to cull lights
an improve performance drastically in the future.
Diffstat (limited to 'source/blender/makesrna/intern/rna_lamp.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_lamp.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index 7828d4a7b7d..11a2c1a5529 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -164,6 +164,19 @@ static void rna_def_light(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Specular Factor", "Specular reflection multiplier"); RNA_def_property_update(prop, 0, "rna_Light_update"); + prop = RNA_def_property(srna, "use_custom_distance", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "mode", LA_CUSTOM_ATTENUATION); + RNA_def_property_ui_text(prop, "Custom Attenuation", "Use custom attenuation distance instead of global light threshold"); + RNA_def_property_update(prop, 0, "rna_Light_update"); + + prop = RNA_def_property(srna, "cutoff_distance", PROP_FLOAT, PROP_DISTANCE); + RNA_def_property_float_sdna(prop, NULL, "att_dist"); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_range(prop, 0.0f, FLT_MAX); + RNA_def_property_ui_range(prop, 0.01f, 100.0f, 1.0, 2); + RNA_def_property_ui_text(prop, "Cutoff Distance", "Distance at which the light influence will be set to 0"); + RNA_def_property_update(prop, 0, "rna_Light_update"); + /* nodes */ prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "nodetree"); |