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:
Diffstat (limited to 'release/scripts/startup/bl_ui/properties_data_lamp.py')
-rw-r--r--release/scripts/startup/bl_ui/properties_data_lamp.py162
1 files changed, 147 insertions, 15 deletions
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index f9394139b42..9ee17d808cf 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -26,7 +26,7 @@ class LAMP_MT_sunsky_presets(Menu):
bl_label = "Sun & Sky Presets"
preset_subdir = "sunsky"
preset_operator = "script.execute_preset"
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
draw = Menu.draw_preset
@@ -37,14 +37,14 @@ class DataButtonsPanel:
@classmethod
def poll(cls, context):
- engine = context.scene.render.engine
+ engine = context.engine
return context.lamp and (engine in cls.COMPAT_ENGINES)
class DATA_PT_context_lamp(DataButtonsPanel, Panel):
bl_label = ""
bl_options = {'HIDE_HEADER'}
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
def draw(self, context):
layout = self.layout
@@ -68,7 +68,7 @@ class DATA_PT_context_lamp(DataButtonsPanel, Panel):
class DATA_PT_preview(DataButtonsPanel, Panel):
bl_label = "Preview"
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
def draw(self, context):
self.layout.template_preview(context.lamp)
@@ -76,7 +76,7 @@ class DATA_PT_preview(DataButtonsPanel, Panel):
class DATA_PT_lamp(DataButtonsPanel, Panel):
bl_label = "Lamp"
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY'}
def draw(self, context):
layout = self.layout
@@ -96,6 +96,7 @@ class DATA_PT_lamp(DataButtonsPanel, Panel):
sub.label(text="Falloff:")
sub.prop(lamp, "falloff_type", text="")
sub.prop(lamp, "distance")
+ sub.prop(lamp, "shadow_soft_size", text="Radius")
if lamp.falloff_type == 'LINEAR_QUADRATIC_WEIGHTED':
col.label(text="Attenuation Factors:")
@@ -123,6 +124,47 @@ class DATA_PT_lamp(DataButtonsPanel, Panel):
col.prop(lamp, "use_diffuse")
+class DATA_PT_EEVEE_lamp(DataButtonsPanel, Panel):
+ bl_label = "Lamp"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ lamp = context.lamp
+
+ layout.row().prop(lamp, "type", expand=True)
+
+ split = layout.split()
+
+ col = split.column()
+ sub = col.column()
+ sub.prop(lamp, "color", text="")
+ sub.prop(lamp, "energy")
+
+ if lamp.type in {'POINT', 'SPOT', 'SUN'}:
+ sub.prop(lamp, "shadow_soft_size", text="Radius")
+ elif lamp.type == 'AREA':
+ sub = sub.column(align=True)
+ sub.prop(lamp, "shape", text="")
+ if lamp.shape == 'SQUARE':
+ sub.prop(lamp, "size")
+ elif lamp.shape == 'RECTANGLE':
+ sub.prop(lamp, "size", text="Size X")
+ sub.prop(lamp, "size_y", text="Size Y")
+
+ col = split.column()
+ col.prop(lamp, "use_specular")
+ col.prop(lamp, "use_diffuse")
+ col.separator()
+
+ if lamp.type in {'POINT', 'SPOT', 'AREA'}:
+ col.prop(lamp, "use_sphere")
+ col = col.column()
+ col.active = lamp.use_sphere
+ col.prop(lamp, "distance")
+
+
class DATA_PT_sunsky(DataButtonsPanel, Panel):
bl_label = "Sky & Atmosphere"
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -130,7 +172,7 @@ class DATA_PT_sunsky(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'SUN') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -202,7 +244,7 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type in {'POINT', 'SUN', 'SPOT', 'AREA'}) and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -307,17 +349,80 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
col.prop(lamp, "use_auto_clip_end", text="Autoclip End")
sub = col.column()
sub.active = not lamp.use_auto_clip_end
- sub.prop(lamp, "shadow_buffer_clip_end", text=" Clip End")
+ sub.prop(lamp, "shadow_buffer_clip_end", text="Clip End")
+
+
+class DATA_PT_EEVEE_shadow(DataButtonsPanel, Panel):
+ bl_label = "Shadow"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ @classmethod
+ def poll(cls, context):
+ lamp = context.lamp
+ engine = context.engine
+ return (lamp and lamp.type in {'POINT', 'SUN', 'SPOT', 'AREA'}) and (engine in cls.COMPAT_ENGINES)
+
+ def draw_header(self, context):
+ lamp = context.lamp
+ self.layout.prop(lamp, "use_shadow", text="")
+
+ def draw(self, context):
+ layout = self.layout
+
+ lamp = context.lamp
+
+ split = layout.split()
+ split.active = lamp.use_shadow
+
+ sub = split.column()
+ col = sub.column(align=True)
+ col.prop(lamp, "shadow_buffer_clip_start", text="Clip Start")
+ col.prop(lamp, "shadow_buffer_clip_end", text="Clip End")
+ col = sub.column()
+ col.prop(lamp, "shadow_buffer_soft", text="Soft")
+
+ col = split.column(align=True)
+ col.prop(lamp, "shadow_buffer_bias", text="Bias")
+ col.prop(lamp, "shadow_buffer_exp", text="Exponent")
+ col.prop(lamp, "shadow_buffer_bleed_bias", text="Bleed Bias")
+
+ if lamp.type == 'SUN':
+ col = layout.column()
+ col.active = lamp.use_shadow
+ col.label("Cascaded Shadow Map:")
+
+ split = col.split()
+
+ sub = split.column()
+ sub.prop(lamp, "shadow_cascade_count", text="Count")
+ sub.prop(lamp, "shadow_cascade_fade", text="Fade")
+
+ sub = split.column()
+ sub.prop(lamp, "shadow_cascade_max_distance", text="Max Distance")
+ sub.prop(lamp, "shadow_cascade_exponent", text="Distribution")
+
+ layout.separator()
+
+ layout.prop(lamp, "use_contact_shadow")
+ split = layout.split()
+ split.active = lamp.use_contact_shadow
+ col = split.column()
+ col.prop(lamp, "contact_shadow_distance", text="Distance")
+ col.prop(lamp, "contact_shadow_soft_size", text="Soft")
+
+ col = split.column()
+ col.prop(lamp, "contact_shadow_bias", text="Bias")
+ col.prop(lamp, "contact_shadow_thickness", text="Thickness")
class DATA_PT_area(DataButtonsPanel, Panel):
bl_label = "Area Shape"
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY'}
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'AREA') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -338,12 +443,12 @@ class DATA_PT_area(DataButtonsPanel, Panel):
class DATA_PT_spot(DataButtonsPanel, Panel):
bl_label = "Spot Shape"
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY'}
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'SPOT') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -371,15 +476,40 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
sub.prop(lamp, "halo_step", text="Step")
+class DATA_PT_spot(DataButtonsPanel, Panel):
+ bl_label = "Spot Shape"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ @classmethod
+ def poll(cls, context):
+ lamp = context.lamp
+ engine = context.engine
+ return (lamp and lamp.type == 'SPOT') and (engine in cls.COMPAT_ENGINES)
+
+ def draw(self, context):
+ layout = self.layout
+
+ lamp = context.lamp
+
+ split = layout.split()
+
+ col = split.column()
+ sub = col.column()
+ sub.prop(lamp, "spot_size", text="Size")
+ sub.prop(lamp, "spot_blend", text="Blend", slider=True)
+ col = split.column()
+ col.prop(lamp, "show_cone")
+
+
class DATA_PT_falloff_curve(DataButtonsPanel, Panel):
bl_label = "Falloff Curve"
bl_options = {'DEFAULT_CLOSED'}
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type in {'POINT', 'SPOT'} and lamp.falloff_type == 'CUSTOM_CURVE') and (engine in cls.COMPAT_ENGINES)
@@ -390,7 +520,7 @@ class DATA_PT_falloff_curve(DataButtonsPanel, Panel):
class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, Panel):
- COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
_context_path = "object.data"
_property_type = bpy.types.Lamp
@@ -400,8 +530,10 @@ classes = (
DATA_PT_context_lamp,
DATA_PT_preview,
DATA_PT_lamp,
+ DATA_PT_EEVEE_lamp,
DATA_PT_sunsky,
DATA_PT_shadow,
+ DATA_PT_EEVEE_shadow,
DATA_PT_area,
DATA_PT_spot,
DATA_PT_falloff_curve,