Cycles / Sampling Presets:
* Add Presets for Sampling. This comes with a simple Preview and Final preset, but as this is varying a lot depending on the scene, they should just be a starting point. The user can add own presets here. * Some UI layout changes to match the settings a bit better.
This commit is contained in:
@@ -46,6 +46,36 @@ class AddPresetIntegrator(AddPresetBase, Operator):
|
|||||||
preset_subdir = "cycles/integrator"
|
preset_subdir = "cycles/integrator"
|
||||||
|
|
||||||
|
|
||||||
|
class AddPresetSampling(AddPresetBase, Operator):
|
||||||
|
'''Add a Sampling Preset'''
|
||||||
|
bl_idname = "render.cycles_sampling_preset_add"
|
||||||
|
bl_label = "Add Sampling Preset"
|
||||||
|
preset_menu = "CYCLES_MT_sampling_presets"
|
||||||
|
|
||||||
|
preset_defines = [
|
||||||
|
"cycles = bpy.context.scene.cycles"
|
||||||
|
]
|
||||||
|
|
||||||
|
preset_values = [
|
||||||
|
"cycles.samples",
|
||||||
|
"cycles.preview_samples",
|
||||||
|
"cycles.aa_samples",
|
||||||
|
"cycles.preview_aa_samples",
|
||||||
|
"cycles.diffuse_samples",
|
||||||
|
"cycles.glossy_samples",
|
||||||
|
"cycles.transmission_samples",
|
||||||
|
"cycles.ao_samples",
|
||||||
|
"cycles.mesh_light_samples",
|
||||||
|
"cycles.subsurface_samples",
|
||||||
|
"cycles.no_caustics",
|
||||||
|
"cycles.blur_glossy",
|
||||||
|
"cycles.squared_samples",
|
||||||
|
"cycles.progressive"
|
||||||
|
]
|
||||||
|
|
||||||
|
preset_subdir = "cycles/sampling"
|
||||||
|
|
||||||
|
|
||||||
def register():
|
def register():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@@ -23,6 +23,14 @@ import bpy
|
|||||||
from bpy.types import Panel, Menu, Operator
|
from bpy.types import Panel, Menu, Operator
|
||||||
|
|
||||||
|
|
||||||
|
class CYCLES_MT_sampling_presets(Menu):
|
||||||
|
bl_label = "Sampling Presets"
|
||||||
|
preset_subdir = "cycles/sampling"
|
||||||
|
preset_operator = "script.execute_preset"
|
||||||
|
COMPAT_ENGINES = {'CYCLES'}
|
||||||
|
draw = Menu.draw_preset
|
||||||
|
|
||||||
|
|
||||||
class CYCLES_MT_integrator_presets(Menu):
|
class CYCLES_MT_integrator_presets(Menu):
|
||||||
bl_label = "Integrator Presets"
|
bl_label = "Integrator Presets"
|
||||||
preset_subdir = "cycles/integrator"
|
preset_subdir = "cycles/integrator"
|
||||||
@@ -52,22 +60,30 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
|
|||||||
scene = context.scene
|
scene = context.scene
|
||||||
cscene = scene.cycles
|
cscene = scene.cycles
|
||||||
device_type = context.user_preferences.system.compute_device_type
|
device_type = context.user_preferences.system.compute_device_type
|
||||||
|
|
||||||
|
row = layout.row(align=True)
|
||||||
|
row.menu("CYCLES_MT_sampling_presets", text=bpy.types.CYCLES_MT_sampling_presets.bl_label)
|
||||||
|
row.operator("render.cycles_sampling_preset_add", text="", icon="ZOOMIN")
|
||||||
|
row.operator("render.cycles_sampling_preset_add", text="", icon="ZOOMOUT").remove_active = True
|
||||||
|
|
||||||
split = layout.split()
|
row = layout.row()
|
||||||
|
sub = row.row()
|
||||||
col = split.column()
|
|
||||||
sub = col.column()
|
|
||||||
sub.active = (device_type == 'NONE' or cscene.device == 'CPU')
|
sub.active = (device_type == 'NONE' or cscene.device == 'CPU')
|
||||||
sub.prop(cscene, "progressive")
|
sub.prop(cscene, "progressive")
|
||||||
|
row.prop(cscene, "squared_samples")
|
||||||
|
|
||||||
|
split = layout.split()
|
||||||
|
|
||||||
|
col = split.column()
|
||||||
sub = col.column(align=True)
|
sub = col.column(align=True)
|
||||||
|
sub.label("Settings:")
|
||||||
sub.prop(cscene, "seed")
|
sub.prop(cscene, "seed")
|
||||||
sub.prop(cscene, "sample_clamp")
|
sub.prop(cscene, "sample_clamp")
|
||||||
|
|
||||||
if cscene.progressive or (device_type != 'NONE' and cscene.device == 'GPU'):
|
if cscene.progressive or (device_type != 'NONE' and cscene.device == 'GPU'):
|
||||||
col = split.column()
|
col = split.column()
|
||||||
col.label(text="Samples:")
|
|
||||||
sub = col.column(align=True)
|
sub = col.column(align=True)
|
||||||
|
sub.label(text="Samples:")
|
||||||
sub.prop(cscene, "samples", text="Render")
|
sub.prop(cscene, "samples", text="Render")
|
||||||
sub.prop(cscene, "preview_samples", text="Preview")
|
sub.prop(cscene, "preview_samples", text="Preview")
|
||||||
else:
|
else:
|
||||||
@@ -76,16 +92,14 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
|
|||||||
sub.prop(cscene, "preview_aa_samples", text="Preview")
|
sub.prop(cscene, "preview_aa_samples", text="Preview")
|
||||||
|
|
||||||
col = split.column()
|
col = split.column()
|
||||||
col.label(text="Samples:")
|
|
||||||
sub = col.column(align=True)
|
sub = col.column(align=True)
|
||||||
|
sub.label(text="Samples:")
|
||||||
sub.prop(cscene, "diffuse_samples", text="Diffuse")
|
sub.prop(cscene, "diffuse_samples", text="Diffuse")
|
||||||
sub.prop(cscene, "glossy_samples", text="Glossy")
|
sub.prop(cscene, "glossy_samples", text="Glossy")
|
||||||
sub.prop(cscene, "transmission_samples", text="Transmission")
|
sub.prop(cscene, "transmission_samples", text="Transmission")
|
||||||
sub.prop(cscene, "ao_samples", text="AO")
|
sub.prop(cscene, "ao_samples", text="AO")
|
||||||
sub.prop(cscene, "mesh_light_samples", text="Mesh Light")
|
sub.prop(cscene, "mesh_light_samples", text="Mesh Light")
|
||||||
sub.prop(cscene, "subsurface_samples", text="Subsurface")
|
sub.prop(cscene, "subsurface_samples", text="Subsurface")
|
||||||
|
|
||||||
layout.prop(cscene, "squared_samples")
|
|
||||||
|
|
||||||
if cscene.feature_set == 'EXPERIMENTAL' and (device_type == 'NONE' or cscene.device == 'CPU'):
|
if cscene.feature_set == 'EXPERIMENTAL' and (device_type == 'NONE' or cscene.device == 'CPU'):
|
||||||
layout.row().prop(cscene, "sampling_pattern", text="Pattern")
|
layout.row().prop(cscene, "sampling_pattern", text="Pattern")
|
||||||
|
16
release/scripts/presets/cycles/sampling/final.py
Normal file
16
release/scripts/presets/cycles/sampling/final.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import bpy
|
||||||
|
cycles = bpy.context.scene.cycles
|
||||||
|
|
||||||
|
cycles.squared_samples = True
|
||||||
|
|
||||||
|
cycles.samples = 8
|
||||||
|
cycles.preview_samples = 8
|
||||||
|
cycles.aa_samples = 8
|
||||||
|
cycles.preview_aa_samples = 8
|
||||||
|
|
||||||
|
cycles.diffuse_samples = 3
|
||||||
|
cycles.glossy_samples = 2
|
||||||
|
cycles.transmission_samples = 2
|
||||||
|
cycles.ao_samples = 1
|
||||||
|
cycles.mesh_light_samples = 2
|
||||||
|
cycles.subsurface_samples = 2
|
16
release/scripts/presets/cycles/sampling/preview.py
Normal file
16
release/scripts/presets/cycles/sampling/preview.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import bpy
|
||||||
|
cycles = bpy.context.scene.cycles
|
||||||
|
|
||||||
|
cycles.squared_samples = True
|
||||||
|
|
||||||
|
cycles.samples = 4
|
||||||
|
cycles.preview_samples = 4
|
||||||
|
cycles.aa_samples = 4
|
||||||
|
cycles.preview_aa_samples = 4
|
||||||
|
|
||||||
|
cycles.diffuse_samples = 3
|
||||||
|
cycles.glossy_samples = 2
|
||||||
|
cycles.transmission_samples = 2
|
||||||
|
cycles.ao_samples = 1
|
||||||
|
cycles.mesh_light_samples = 2
|
||||||
|
cycles.subsurface_samples = 2
|
Reference in New Issue
Block a user