Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-11-15 16:44:45 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-11-15 20:16:30 +0300
commit516e000aa9762c6b19c64ce46e5dd458cd04a1fb (patch)
treedaef7a7f7e8211e212aa24bc9a8a8322d7eef25f /release/scripts/startup/bl_ui/properties_data_light.py
parentd082b18d877f2da661ee2a48fdf3c69d67406e86 (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 'release/scripts/startup/bl_ui/properties_data_light.py')
-rw-r--r--release/scripts/startup/bl_ui/properties_data_light.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/release/scripts/startup/bl_ui/properties_data_light.py b/release/scripts/startup/bl_ui/properties_data_light.py
index 8aa70d1e05f..7d21ecb99b3 100644
--- a/release/scripts/startup/bl_ui/properties_data_light.py
+++ b/release/scripts/startup/bl_ui/properties_data_light.py
@@ -105,6 +105,36 @@ class DATA_PT_EEVEE_light(DataButtonsPanel, Panel):
sub.prop(light, "size_y", text="Y")
+class DATA_PT_EEVEE_light_distance(DataButtonsPanel, Panel):
+ bl_label = "Custom Distance"
+ bl_parent_id = "DATA_PT_EEVEE_light"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ @classmethod
+ def poll(cls, context):
+ light = context.light
+ engine = context.engine
+
+ return (light and light.type != 'SUN') and (engine in cls.COMPAT_ENGINES)
+
+ def draw_header(self, context):
+ light = context.light
+
+ layout = self.layout
+ layout.active = light.use_shadow
+ layout.prop(light, "use_custom_distance", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ light = context.light
+ layout.use_property_split = True
+
+ col = layout.column()
+
+ col.prop(light, "cutoff_distance", text="Distance")
+
+
class DATA_PT_EEVEE_shadow(DataButtonsPanel, Panel):
bl_label = "Shadow"
bl_options = {'DEFAULT_CLOSED'}
@@ -131,7 +161,8 @@ class DATA_PT_EEVEE_shadow(DataButtonsPanel, Panel):
col = layout.column()
sub = col.column(align=True)
sub.prop(light, "shadow_buffer_clip_start", text="Clip Start")
- sub.prop(light, "shadow_buffer_clip_end", text="End")
+ if light.type == 'SUN':
+ sub.prop(light, "shadow_buffer_clip_end", text="End")
col.prop(light, "shadow_buffer_soft", text="Softness")
@@ -281,6 +312,7 @@ classes = (
DATA_PT_preview,
DATA_PT_light,
DATA_PT_EEVEE_light,
+ DATA_PT_EEVEE_light_distance,
DATA_PT_EEVEE_shadow,
DATA_PT_EEVEE_shadow_contact,
DATA_PT_EEVEE_shadow_cascaded_shadow_map,