diff options
-rw-r--r-- | release/scripts/ui/properties_data_lamp.py | 104 |
1 files changed, 63 insertions, 41 deletions
diff --git a/release/scripts/ui/properties_data_lamp.py b/release/scripts/ui/properties_data_lamp.py index a67d7c8fc87..69b22c555ab 100644 --- a/release/scripts/ui/properties_data_lamp.py +++ b/release/scripts/ui/properties_data_lamp.py @@ -239,6 +239,23 @@ class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel): else: layout.prop(lamp, "shadow_method", text="") + if lamp.shadow_method == 'NOSHADOW' and lamp.type == 'AREA': + split = layout.split() + + col= split.column() + col.label(text="Form factor sampling:") + + if wide_ui: + sub=col.row(align=True) + else: + sub=col.column(align=True) + + if lamp.shape == 'SQUARE': + sub.prop(lamp, "shadow_ray_samples_x", text="Samples") + elif lamp.shape == 'RECTANGLE': + sub.prop(lamp, "shadow_ray_samples_x", text="Samples X") + sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y") + if lamp.shadow_method != 'NOSHADOW': split = layout.split() @@ -251,51 +268,51 @@ class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel): col.prop(lamp, "only_shadow") if lamp.shadow_method == 'RAY_SHADOW': - col = layout.column() + split = layout.split() + + col = split.column() col.label(text="Sampling:") + + if lamp.type in ('POINT', 'SUN', 'SPOT'): + if wide_ui: + sub=col.row() + else: + sub=col.column() + + sub.prop(lamp, "shadow_ray_samples", text="Samples") + sub.prop(lamp, "shadow_soft_size", text="Soft Size") + + elif lamp.type == 'AREA': + if wide_ui: + sub=col.row(align=True) + else: + sub=col.column(align=True) + + if lamp.shape == 'SQUARE': + sub.prop(lamp, "shadow_ray_samples_x", text="Samples") + elif lamp.shape == 'RECTANGLE': + sub.prop(lamp, "shadow_ray_samples_x", text="Samples X") + sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y") + if wide_ui: col.row().prop(lamp, "shadow_ray_sampling_method", expand=True) else: - col.prop(lamp, "shadow_ray_sampling_method", text="") - - if lamp.type in ('POINT', 'SUN', 'SPOT'): - split = layout.split() + col.prop(lamp, "shadow_ray_sampling_method", text="") - col = split.column() - col.prop(lamp, "shadow_soft_size", text="Soft Size") - - col.prop(lamp, "shadow_ray_samples", text="Samples") - if lamp.shadow_ray_sampling_method == 'ADAPTIVE_QMC': - col.prop(lamp, "shadow_adaptive_threshold", text="Threshold") + split = layout.split() + col = split.column() + + if lamp.shadow_ray_sampling_method == 'ADAPTIVE_QMC': + col.prop(lamp, "shadow_adaptive_threshold", text="Threshold") if wide_ui: col = split.column() - - elif lamp.type == 'AREA': - split = layout.split() - + + if lamp.type == 'AREA' and lamp.shadow_ray_sampling_method == 'CONSTANT_JITTERED': col = split.column() - - if lamp.shape == 'SQUARE': - col.prop(lamp, "shadow_ray_samples_x", text="Samples") - elif lamp.shape == 'RECTANGLE': - col.prop(lamp, "shadow_ray_samples_x", text="Samples X") - col.prop(lamp, "shadow_ray_samples_y", text="Samples Y") - - if lamp.shadow_ray_sampling_method == 'ADAPTIVE_QMC': - col.prop(lamp, "shadow_adaptive_threshold", text="Threshold") - if wide_ui: - col = split.column() - - elif lamp.shadow_ray_sampling_method == 'CONSTANT_JITTERED': - if wide_ui: - col = split.column() - col.prop(lamp, "umbra") - col.prop(lamp, "dither") - col.prop(lamp, "jitter") - else: - if wide_ui: - col = split.column() - + col = split.column() + col.prop(lamp, "umbra") + col.prop(lamp, "dither") + col.prop(lamp, "jitter") elif lamp.shadow_method == 'BUFFER_SHADOW': col = layout.column() @@ -355,16 +372,21 @@ class DATA_PT_area(DataButtonsPanel, bpy.types.Panel): return (lamp and lamp.type == 'AREA') and (engine in __class__.COMPAT_ENGINES) def draw(self, context): - layout = self.layout - lamp = context.lamp + wide_ui = context.region.width > narrowui + layout = self.layout split = layout.split() col = split.column() - col.row().prop(lamp, "shape", expand=True) + + if wide_ui: + col.row().prop(lamp, "shape", expand=True) + sub = col.row(align=True) + else: + col.prop(lamp, "shape", text="") + sub = col.column(align=True) - sub = col.column(align=True) if (lamp.shape == 'SQUARE'): sub.prop(lamp, "size") elif (lamp.shape == 'RECTANGLE'): |