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:
authorThomas Dinges <blender@dingto.org>2013-07-20 03:59:40 +0400
committerThomas Dinges <blender@dingto.org>2013-07-20 03:59:40 +0400
commitac1d58d962084df88a699eec6abe267444295fd6 (patch)
treeee5bdd30e89a68d69ef2a201db440871e86adbbb
parentcf62de6c6df49bdadd709d9628411bc74c1dfd95 (diff)
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.
-rw-r--r--intern/cycles/blender/addon/presets.py30
-rw-r--r--intern/cycles/blender/addon/ui.py32
-rw-r--r--release/scripts/presets/cycles/sampling/final.py16
-rw-r--r--release/scripts/presets/cycles/sampling/preview.py16
4 files changed, 85 insertions, 9 deletions
diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py
index e2836b2cc21..d1f8e7c3a6d 100644
--- a/intern/cycles/blender/addon/presets.py
+++ b/intern/cycles/blender/addon/presets.py
@@ -46,6 +46,36 @@ class AddPresetIntegrator(AddPresetBase, Operator):
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():
pass
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index d862a00f006..1a17675cb71 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -23,6 +23,14 @@ import bpy
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):
bl_label = "Integrator Presets"
preset_subdir = "cycles/integrator"
@@ -52,22 +60,30 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
scene = context.scene
cscene = scene.cycles
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()
-
- col = split.column()
- sub = col.column()
+ row = layout.row()
+ sub = row.row()
sub.active = (device_type == 'NONE' or cscene.device == 'CPU')
sub.prop(cscene, "progressive")
-
+ row.prop(cscene, "squared_samples")
+
+ split = layout.split()
+
+ col = split.column()
sub = col.column(align=True)
+ sub.label("Settings:")
sub.prop(cscene, "seed")
sub.prop(cscene, "sample_clamp")
if cscene.progressive or (device_type != 'NONE' and cscene.device == 'GPU'):
col = split.column()
- col.label(text="Samples:")
sub = col.column(align=True)
+ sub.label(text="Samples:")
sub.prop(cscene, "samples", text="Render")
sub.prop(cscene, "preview_samples", text="Preview")
else:
@@ -76,16 +92,14 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
sub.prop(cscene, "preview_aa_samples", text="Preview")
col = split.column()
- col.label(text="Samples:")
sub = col.column(align=True)
+ sub.label(text="Samples:")
sub.prop(cscene, "diffuse_samples", text="Diffuse")
sub.prop(cscene, "glossy_samples", text="Glossy")
sub.prop(cscene, "transmission_samples", text="Transmission")
sub.prop(cscene, "ao_samples", text="AO")
sub.prop(cscene, "mesh_light_samples", text="Mesh Light")
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'):
layout.row().prop(cscene, "sampling_pattern", text="Pattern")
diff --git a/release/scripts/presets/cycles/sampling/final.py b/release/scripts/presets/cycles/sampling/final.py
new file mode 100644
index 00000000000..3e7516c170b
--- /dev/null
+++ b/release/scripts/presets/cycles/sampling/final.py
@@ -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
diff --git a/release/scripts/presets/cycles/sampling/preview.py b/release/scripts/presets/cycles/sampling/preview.py
new file mode 100644
index 00000000000..c9ceead23b9
--- /dev/null
+++ b/release/scripts/presets/cycles/sampling/preview.py
@@ -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