post 2.8 fix light samples
This commit is contained in:
parent
610fb38cc2
commit
4262eb5403
|
@ -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.
|
||||
###############################################################################
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue