[Bf-blender-cvs] [73d5ab90c2c] cycles-x: Cycles X: sampling settings update
Brecht Van Lommel
noreply at git.blender.org
Mon Sep 6 14:25:37 CEST 2021
Commit: 73d5ab90c2cb976b9374976fe1a936b6885fdd4c
Author: Brecht Van Lommel
Date: Thu Sep 2 18:28:21 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB73d5ab90c2cb976b9374976fe1a936b6885fdd4c
Cycles X: sampling settings update
* Separate adaptive sampling settings for viewport and final render
* Enable adaptive sampling and denoising by default
* Move denoiser prefilter and pass settings to scene
* Remove square samples option
* Reorganize UI
* Add separate viewport and final render presets
Ref T90805
Differential Revision: https://developer.blender.org/D12384
===================================================================
M intern/cycles/blender/addon/presets.py
M intern/cycles/blender/addon/properties.py
M intern/cycles/blender/addon/ui.py
M intern/cycles/blender/addon/version_update.py
M intern/cycles/blender/blender_sync.cpp
M release/scripts/presets/cycles/sampling/Final.py
M release/scripts/presets/cycles/sampling/Preview.py
A release/scripts/presets/cycles/viewport_sampling/Final.py
A release/scripts/presets/cycles/viewport_sampling/Preview.py
M source/blender/blenloader/intern/versioning_defaults.c
===================================================================
diff --git a/intern/cycles/blender/addon/presets.py b/intern/cycles/blender/addon/presets.py
index a3bb6e8e266..37c39904e30 100644
--- a/intern/cycles/blender/addon/presets.py
+++ b/intern/cycles/blender/addon/presets.py
@@ -60,20 +60,48 @@ class AddPresetSampling(AddPresetBase, Operator):
]
preset_values = [
+ "cycles.use_adaptive_sampling",
"cycles.samples",
- "cycles.preview_samples",
- "cycles.use_square_samples",
- "cycles.seed",
- "cycles.sample_clamp_direct",
- "cycles.sample_clamp_indirect",
+ "cycles.adaptive_threshold",
+ "cycles.adaptive_min_samples",
+ "cycles.time_limit",
+ "cycles.use_denoising",
+ "cycles.denoiser",
+ "cycles.denoising_input_passes",
+ "cycles.denoising_prefilter",
]
preset_subdir = "cycles/sampling"
+class AddPresetViewportSampling(AddPresetBase, Operator):
+ '''Add a Viewport Sampling Preset'''
+ bl_idname = "render.cycles_viewport_sampling_preset_add"
+ bl_label = "Add Viewport Sampling Preset"
+ preset_menu = "CYCLES_PT_viewport_sampling_presets"
+
+ preset_defines = [
+ "cycles = bpy.context.scene.cycles"
+ ]
+
+ preset_values = [
+ "cycles.use_preview_adaptive_sampling",
+ "cycles.preview_samples",
+ "cycles.preview_adaptive_threshold",
+ "cycles.preview_adaptive_min_samples",
+ "cycles.use_preview_denoising",
+ "cycles.preview_denoiser",
+ "cycles.preview_denoising_input_passes",
+ "cycles.preview_denoising_prefilter",
+ "cycles.preview_denoising_start_sample",
+ ]
+
+ preset_subdir = "cycles/viewport_sampling"
+
classes = (
AddPresetIntegrator,
AddPresetSampling,
+ AddPresetViewportSampling,
)
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index c00be178c10..cbc741c20c3 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -201,9 +201,9 @@ def enum_denoiser(self, context):
enum_denoising_input_passes = (
- ('RGB', "Color", "Use only color as input", 1),
- ('RGB_ALBEDO', "Color + Albedo", "Use color and albedo data as input", 2),
- ('RGB_ALBEDO_NORMAL', "Color + Albedo + Normal", "Use color, albedo and normal data as input", 3),
+ ('RGB', "None", "Don't use utility passes for denoising", 1),
+ ('RGB_ALBEDO', "Albedo", "Use albedo pass for denoising", 2),
+ ('RGB_ALBEDO_NORMAL', "Albedo and Normal", "Use albedo and normal passes for denoising", 3),
)
enum_denoising_prefilter = (
@@ -252,53 +252,71 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
use_denoising: BoolProperty(
name="Use Denoising",
description="Denoise the rendered image",
- default=False,
+ default=True,
update=update_render_passes,
)
- use_preview_denoising: BoolProperty(
- name="Use Viewport Denoising",
- description="Denoise the image in the 3D viewport",
- default=False,
- )
- preview_denoising_prefilter: EnumProperty(
- name="Denoising Prefilter",
- description="Prefilter noisy guiding (albedo and normal) passes to improve denoising quality when using OpenImageDenoiser",
- items=enum_denoising_prefilter,
- default='FAST',
- )
-
denoiser: EnumProperty(
name="Denoiser",
description="Denoise the image with the selected denoiser. "
"For denoising the image after rendering",
items=enum_denoiser,
- default=1,
+ default=4, # Use integer to avoid error in builds without OpenImageDenoise.
update=update_render_passes,
)
+ denoising_prefilter: EnumProperty(
+ name="Denoising Prefilter",
+ description="Prefilter noisy guiding (albedo and normal) passes to improve denoising quality when using OpenImageDenoiser",
+ items=enum_denoising_prefilter,
+ default='ACCURATE',
+ )
+ denoising_input_passes: EnumProperty(
+ name="Denoising Input Passes",
+ description="Passes used by the denoiser to distinguish noise from shader and geometry detail",
+ items=enum_denoising_input_passes,
+ default='RGB_ALBEDO_NORMAL',
+ )
+
+ use_preview_denoising: BoolProperty(
+ name="Use Viewport Denoising",
+ description="Denoise the image in the 3D viewport",
+ default=False,
+ )
preview_denoiser: EnumProperty(
name="Viewport Denoiser",
description="Denoise the image after each preview update with the selected denoiser",
items=enum_preview_denoiser,
default=0,
)
-
- use_square_samples: BoolProperty(
- name="Square Samples",
- description="Square sampling values for easier artist control",
- default=False,
+ preview_denoising_prefilter: EnumProperty(
+ name="Viewport Denoising Prefilter",
+ description="Prefilter noisy guiding (albedo and normal) passes to improve denoising quality when using OpenImageDenoiser",
+ items=enum_denoising_prefilter,
+ default='FAST',
+ )
+ preview_denoising_input_passes: EnumProperty(
+ name="Viewport Denoising Input Passes",
+ description="Passes used by the denoiser to distinguish noise from shader and geometry detail",
+ items=enum_denoising_input_passes,
+ default='RGB_ALBEDO',
+ )
+ preview_denoising_start_sample: IntProperty(
+ name="Start Denoising",
+ description="Sample to start denoising the preview at",
+ min=0, max=(1 << 24),
+ default=1,
)
samples: IntProperty(
name="Samples",
description="Number of samples to render for each pixel",
min=1, max=(1 << 24),
- default=128,
+ default=4096,
)
preview_samples: IntProperty(
name="Viewport Samples",
description="Number of samples to render in the viewport, unlimited if 0",
min=0, max=(1 << 24),
- default=32,
+ default=1024,
)
# TODO: Use proper subtype to show units in the UI.
@@ -335,14 +353,14 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
use_adaptive_sampling: BoolProperty(
name="Use Adaptive Sampling",
description="Automatically reduce the number of samples per pixel based on estimated noise level",
- default=False,
+ default=True,
)
-
adaptive_threshold: FloatProperty(
name="Adaptive Sampling Threshold",
description="Noise level step to stop sampling at, lower values reduce noise at the cost of render time. Zero for automatic setting based on number of AA samples",
min=0.0, max=1.0,
- default=0.0,
+ soft_min=0.001,
+ default=0.01,
precision=4,
)
adaptive_min_samples: IntProperty(
@@ -352,6 +370,26 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
default=0,
)
+ use_preview_adaptive_sampling: BoolProperty(
+ name="Use Adaptive Sampling",
+ description="Automatically reduce the number of samples per pixel based on estimated noise level, for viewport renders",
+ default=True,
+ )
+ preview_adaptive_threshold: FloatProperty(
+ name="Adaptive Sampling Threshold",
+ description="Noise level step to stop sampling at, lower values reduce noise at the cost of render time. Zero for automatic setting based on number of AA samples, for viewport renders",
+ min=0.0, max=1.0,
+ soft_min=0.001,
+ default=0.1,
+ precision=4,
+ )
+ preview_adaptive_min_samples: IntProperty(
+ name="Adaptive Min Samples",
+ description="Minimum AA samples for adaptive sampling, to discover noisy features before stopping sampling. Zero for automatic setting based on number of AA samples, for viewport renders",
+ min=0, max=4096,
+ default=0,
+ )
+
min_light_bounces: IntProperty(
name="Min Light Bounces",
description="Minimum number of light bounces. Setting this higher reduces noise in the first bounces, "
@@ -564,19 +602,6 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
default=10.0,
)
- preview_denoising_start_sample: IntProperty(
- name="Start Denoising",
- description="Sample to start denoising the preview at",
- min=0, max=(1 << 24),
- default=1,
- )
- preview_denoising_input_passes: EnumProperty(
- name="Viewport Input Passes",
- description="Passes used by the denoiser to distinguish noise from shader and geometry detail",
- items=enum_denoising_input_passes,
- default='RGB_ALBEDO',
- )
-
debug_bvh_type: EnumProperty(
name="Viewport BVH Type",
description="Choose between faster updates, or faster render",
@@ -1203,25 +1228,6 @@ class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
update=update_render_passes,
)
- denoising_optix_input_passes: EnumProperty(
- name="Input Passes",
- description="Passes used by the denoiser to distinguish noise from shader and geometry detail",
- items=enum_denoising_input_passes,
- default='RGB_ALBEDO',
- )
- denoising_openimagedenoise_input_passes: EnumProperty(
- name="Input Passes",
- description="Passes used by the denoiser to distinguish noise from shader and geometry detail",
- items=enum_denoising_input_passes,
- default='RGB_ALBEDO_NORMAL',
- )
- denoising_prefilter: EnumProperty(
- name="Denoising Prefilter",
- description="Prefilter noisy guiding (albedo and normal) passes to improve denoising quality when using OpenImageDenoiser",
- items=enum_denoising_prefilter,
- default='ACCURATE',
- )
-
@classmethod
def register(cls):
bpy.types.ViewLayer.cycles = PointerProperty(
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 92e70cd5706..ec04be2aa22 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -34,6 +34,12 @@ class CYCLES_PT_sampling_presets(PresetPa
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list