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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Raybaud <mauriceraybaud@hotmail.fr>2019-08-24 00:54:57 +0300
committerMaurice Raybaud <mauriceraybaud@hotmail.fr>2019-08-24 00:55:32 +0300
commit4262eb54033c8bb23225b9b51942006748939b89 (patch)
treef3d07ab9d917475013d891bfe865587e9ec1d1b5
parent610fb38cc21576db6c4c1acfa1247caa79db6243 (diff)
post 2.8 fix light samples
-rw-r--r--render_povray/__init__.py27
-rw-r--r--render_povray/render.py12
-rw-r--r--render_povray/ui.py64
3 files changed, 96 insertions, 7 deletions
diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index e475335e..0551e2eb 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -4094,7 +4094,32 @@ class RenderPovSettingsLight(PropertyGroup):
default="RAY_SHADOW")
active_texture_index: IntProperty(
name = "Index for texture_slots",
- default = 0)
+ default = 0)
+ use_halo: BoolProperty(
+ name="Halo", description="Render spotlight with a volumetric halo",
+ default=False)
+ halo_intensity: FloatProperty(
+ name="Halo intensity",
+ description="Brightness of the spotlight halo cone",
+ soft_min=0.0, soft_max=1.0, default=1.0)
+ shadow_ray_samples_x: IntProperty(
+ name = "Number of samples taken extra (samples x samples)",
+ min=1, soft_max=64,
+ default = 1)
+ shadow_ray_samples_y: IntProperty(
+ name = "Number of samples taken extra (samples x samples)",
+ min=1, soft_max=64,
+ default = 1)
+ shadow_ray_sample_method: EnumProperty(
+ name="",
+ description="Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower",
+ items=(('ADAPTIVE_QMC', "", "Halton samples distribution", "",0),
+ ('CONSTANT_QMC', "", "QMC samples distribution", "",1),
+ ('CONSTANT_JITTERED', "", "Uses POV jitter keyword", "",2)), #"Show other data textures"
+ default = 'CONSTANT_JITTERED')
+ use_jitter: BoolProperty(
+ name="Jitter", description="Use noise for sampling (Constant Jittered sampling)",
+ default=False)
###############################################################################
# World POV properties.
###############################################################################
diff --git a/render_povray/render.py b/render_povray/render.py
index 828141ce..1b03c241 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -600,13 +600,13 @@ def write_pov(filename, scene=None, info_callback=None):
tabWrite("tightness 0\n") # 0:10f
tabWrite("point_at <0, 0, -1>\n")
- if lamp.use_halo:
+ if lamp.pov.use_halo:
tabWrite("looks_like{\n")
tabWrite("sphere{<0,0,0>,%.6f\n" %lamp.distance)
tabWrite("hollow\n")
tabWrite("material{\n")
tabWrite("texture{\n")
- tabWrite("pigment{rgbf<1,1,1,%.4f>}\n" % (lamp.halo_intensity*5.0))
+ tabWrite("pigment{rgbf<1,1,1,%.4f>}\n" % (lamp.pov.halo_intensity*5.0))
tabWrite("}\n")
tabWrite("interior{\n")
tabWrite("media{\n")
@@ -635,19 +635,19 @@ def write_pov(filename, scene=None, info_callback=None):
# for those?
tabWrite("fade_power %d\n" % 2)
size_x = lamp.size
- samples_x = lamp.shadow_ray_samples_x
+ samples_x = lamp.pov.shadow_ray_samples_x
if lamp.shape == 'SQUARE':
size_y = size_x
samples_y = samples_x
else:
size_y = lamp.size_y
- samples_y = lamp.shadow_ray_samples_y
+ samples_y = lamp.pov.shadow_ray_samples_y
tabWrite("area_light <%.6f,0,0>,<0,%.6f,0> %d, %d\n" % \
(size_x, size_y, samples_x, samples_y))
tabWrite("area_illumination\n")
- if lamp.shadow_ray_sample_method == 'CONSTANT_JITTERED':
- if lamp.use_jitter:
+ if lamp.pov.shadow_ray_sample_method == 'CONSTANT_JITTERED':
+ if lamp.pov.use_jitter:
tabWrite("jitter\n")
else:
tabWrite("adaptive 1\n")
diff --git a/render_povray/ui.py b/render_povray/ui.py
index c1408153..1ffb0140 100644
--- a/render_povray/ui.py
+++ b/render_povray/ui.py
@@ -622,6 +622,70 @@ class LIGHT_PT_POV_shadow(PovLampButtonsPanel, Panel):
lamp = context.lamp
layout.row().prop(lamp, "shadow_method", expand=True)
+
+ 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.prop(lamp, "use_square")
+ col.prop(lamp, "show_cone")
+
+ col = split.column()
+
+ col.active = (lamp.shadow_method != 'BUFFER_SHADOW' or lamp.shadow_buffer_type != 'DEEP')
+ col.prop(lamp, "use_halo")
+ sub = col.column(align=True)
+ sub.active = lamp.use_halo
+ sub.prop(lamp, "halo_intensity", text="Intensity")
+ if lamp.shadow_method == 'BUFFER_SHADOW':
+ sub.prop(lamp, "halo_step", text="Step")
+ if lamp.shadow_method == 'NOSHADOW' and lamp.type == 'AREA':
+ split = layout.split()
+
+ col = split.column()
+ col.label(text="Form factor sampling:")
+
+ sub = col.row(align=True)
+
+ if lamp.shape == 'SQUARE':
+ sub.prop(lamp, "shadow_ray_samples_x", text="Samples")
+ elif lamp.shape == 'RECTANGLE':
+ sub.prop(lamp.pov, "shadow_ray_samples_x", text="Samples X")
+ sub.prop(lamp.pov, "shadow_ray_samples_y", text="Samples Y")
+
+ if lamp.shadow_method != 'NOSHADOW':
+ split = layout.split()
+
+ col = split.column()
+ col.prop(lamp, "shadow_color", text="")
+
+ col = split.column()
+ col.prop(lamp, "use_shadow_layer", text="This Layer Only")
+ col.prop(lamp, "use_only_shadow")
+
+ if lamp.shadow_method == 'RAY_SHADOW':
+ split = layout.split()
+
+ col = split.column()
+ col.label(text="Sampling:")
+
+ if lamp.type in {'POINT', 'SUN', 'SPOT'}:
+ sub = col.row()
+
+ sub.prop(lamp, "shadow_ray_samples", text="Samples")
+ sub.prop(lamp, "shadow_soft_size", text="Soft Size")
+
+ elif lamp.type == 'AREA':
+ sub = col.row(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' and lamp.type == 'AREA':
split = layout.split()