forked from bartvdbraak/blender
Cycles: make AO bounces settings more discoverable
* Move out of Simplify panel, into Light Paths > Fast Global Illumination * Add separate boolan setting to enable/disable it separate from Simplify * Default AO bounces to 1 * Put ambient occlusion distance in this panel as well
This commit is contained in:
parent
8681504f06
commit
edd2f51b4e
@ -801,17 +801,22 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
|
|||||||
items=enum_texture_limit
|
items=enum_texture_limit
|
||||||
)
|
)
|
||||||
|
|
||||||
|
use_fast_gi: BoolProperty(
|
||||||
|
name="Fast GI Approximation",
|
||||||
|
description="Approximate diffuse indirect light with background tinted ambient occlusion. This provides fast alternative to full global illumination, for interactive viewport rendering or final renders with reduced quality",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
ao_bounces: IntProperty(
|
ao_bounces: IntProperty(
|
||||||
name="AO Bounces",
|
name="AO Bounces",
|
||||||
default=0,
|
default=1,
|
||||||
description="Approximate indirect light with background tinted ambient occlusion at the specified bounce, 0 disables this feature",
|
description="After this number of light bounces, use approximate global illumination. 0 disables this feature",
|
||||||
min=0, max=1024,
|
min=0, max=1024,
|
||||||
)
|
)
|
||||||
|
|
||||||
ao_bounces_render: IntProperty(
|
ao_bounces_render: IntProperty(
|
||||||
name="AO Bounces Render",
|
name="AO Bounces Render",
|
||||||
default=0,
|
default=1,
|
||||||
description="Approximate indirect light with background tinted ambient occlusion at the specified bounce, 0 disables this feature",
|
description="After this number of light bounces, use approximate global illumination. 0 disables this feature",
|
||||||
min=0, max=1024,
|
min=0, max=1024,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -526,6 +526,35 @@ class CYCLES_RENDER_PT_light_paths_caustics(CyclesButtonsPanel, Panel):
|
|||||||
col.prop(cscene, "caustics_refractive", text="Refractive")
|
col.prop(cscene, "caustics_refractive", text="Refractive")
|
||||||
|
|
||||||
|
|
||||||
|
class CYCLES_RENDER_PT_light_paths_fast_gi(CyclesButtonsPanel, Panel):
|
||||||
|
bl_label = "Fast GI Approximation"
|
||||||
|
bl_options = {'DEFAULT_CLOSED'}
|
||||||
|
bl_parent_id = "CYCLES_RENDER_PT_light_paths"
|
||||||
|
|
||||||
|
def draw_header(self, context):
|
||||||
|
scene = context.scene
|
||||||
|
cscene = scene.cycles
|
||||||
|
|
||||||
|
self.layout.prop(cscene, "use_fast_gi", text="")
|
||||||
|
|
||||||
|
def draw(self, context):
|
||||||
|
scene = context.scene
|
||||||
|
cscene = scene.cycles
|
||||||
|
world = scene.world
|
||||||
|
|
||||||
|
layout = self.layout
|
||||||
|
layout.use_property_split = True
|
||||||
|
layout.use_property_decorate = False
|
||||||
|
|
||||||
|
col = layout.column(align=True)
|
||||||
|
col.prop(cscene, "ao_bounces", text="Viewport Bounces")
|
||||||
|
col.prop(cscene, "ao_bounces_render", text="Render Bounces")
|
||||||
|
|
||||||
|
if world:
|
||||||
|
light = world.light_settings
|
||||||
|
layout.prop(light, "distance", text="AO Distance")
|
||||||
|
|
||||||
|
|
||||||
class CYCLES_RENDER_PT_motion_blur(CyclesButtonsPanel, Panel):
|
class CYCLES_RENDER_PT_motion_blur(CyclesButtonsPanel, Panel):
|
||||||
bl_label = "Motion Blur"
|
bl_label = "Motion Blur"
|
||||||
bl_options = {'DEFAULT_CLOSED'}
|
bl_options = {'DEFAULT_CLOSED'}
|
||||||
@ -2041,7 +2070,6 @@ class CYCLES_RENDER_PT_simplify_viewport(CyclesButtonsPanel, Panel):
|
|||||||
col.prop(rd, "simplify_subdivision", text="Max Subdivision")
|
col.prop(rd, "simplify_subdivision", text="Max Subdivision")
|
||||||
col.prop(rd, "simplify_child_particles", text="Child Particles")
|
col.prop(rd, "simplify_child_particles", text="Child Particles")
|
||||||
col.prop(cscene, "texture_limit", text="Texture Limit")
|
col.prop(cscene, "texture_limit", text="Texture Limit")
|
||||||
col.prop(cscene, "ao_bounces", text="AO Bounces")
|
|
||||||
col.prop(rd, "simplify_volumes", text="Volume Resolution")
|
col.prop(rd, "simplify_volumes", text="Volume Resolution")
|
||||||
|
|
||||||
|
|
||||||
@ -2067,7 +2095,6 @@ class CYCLES_RENDER_PT_simplify_render(CyclesButtonsPanel, Panel):
|
|||||||
col.prop(rd, "simplify_subdivision_render", text="Max Subdivision")
|
col.prop(rd, "simplify_subdivision_render", text="Max Subdivision")
|
||||||
col.prop(rd, "simplify_child_particles_render", text="Child Particles")
|
col.prop(rd, "simplify_child_particles_render", text="Child Particles")
|
||||||
col.prop(cscene, "texture_limit_render", text="Texture Limit")
|
col.prop(cscene, "texture_limit_render", text="Texture Limit")
|
||||||
col.prop(cscene, "ao_bounces_render", text="AO Bounces")
|
|
||||||
|
|
||||||
|
|
||||||
class CYCLES_RENDER_PT_simplify_culling(CyclesButtonsPanel, Panel):
|
class CYCLES_RENDER_PT_simplify_culling(CyclesButtonsPanel, Panel):
|
||||||
@ -2245,6 +2272,7 @@ classes = (
|
|||||||
CYCLES_RENDER_PT_light_paths_max_bounces,
|
CYCLES_RENDER_PT_light_paths_max_bounces,
|
||||||
CYCLES_RENDER_PT_light_paths_clamping,
|
CYCLES_RENDER_PT_light_paths_clamping,
|
||||||
CYCLES_RENDER_PT_light_paths_caustics,
|
CYCLES_RENDER_PT_light_paths_caustics,
|
||||||
|
CYCLES_RENDER_PT_light_paths_fast_gi,
|
||||||
CYCLES_RENDER_PT_volumes,
|
CYCLES_RENDER_PT_volumes,
|
||||||
CYCLES_RENDER_PT_subdivision,
|
CYCLES_RENDER_PT_subdivision,
|
||||||
CYCLES_RENDER_PT_hair,
|
CYCLES_RENDER_PT_hair,
|
||||||
|
@ -217,6 +217,15 @@ def do_versions(self):
|
|||||||
baov.name = caov.get("name", "AOV")
|
baov.name = caov.get("name", "AOV")
|
||||||
baov.type = "COLOR" if caov.get("type", 1) == 1 else "VALUE"
|
baov.type = "COLOR" if caov.get("type", 1) == 1 else "VALUE"
|
||||||
|
|
||||||
|
if version <= (2, 93, 16):
|
||||||
|
cscene = scene.cycles
|
||||||
|
if scene.render.use_simplify and \
|
||||||
|
(cscene.ao_bounces or cscene.ao_bounces_render):
|
||||||
|
cscene.use_fast_gi = True
|
||||||
|
else:
|
||||||
|
cscene.ao_bounces = 1
|
||||||
|
cscene.ao_bounces_render = 1
|
||||||
|
|
||||||
# Lamps
|
# Lamps
|
||||||
for light in bpy.data.lights:
|
for light in bpy.data.lights:
|
||||||
if light.library not in libraries:
|
if light.library not in libraries:
|
||||||
|
@ -358,7 +358,7 @@ void BlenderSync::sync_integrator()
|
|||||||
|
|
||||||
integrator->set_adaptive_min_samples(adaptive_min_samples);
|
integrator->set_adaptive_min_samples(adaptive_min_samples);
|
||||||
|
|
||||||
if (b_scene.render().use_simplify()) {
|
if (get_boolean(cscene, "use_fast_gi")) {
|
||||||
if (preview) {
|
if (preview) {
|
||||||
integrator->set_ao_bounces(get_int(cscene, "ao_bounces"));
|
integrator->set_ao_bounces(get_int(cscene, "ao_bounces"));
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ extern "C" {
|
|||||||
|
|
||||||
/* Blender file format version. */
|
/* Blender file format version. */
|
||||||
#define BLENDER_FILE_VERSION BLENDER_VERSION
|
#define BLENDER_FILE_VERSION BLENDER_VERSION
|
||||||
#define BLENDER_FILE_SUBVERSION 16
|
#define BLENDER_FILE_SUBVERSION 17
|
||||||
|
|
||||||
/* Minimum Blender version that supports reading file written with the current
|
/* Minimum Blender version that supports reading file written with the current
|
||||||
* version. Older Blender versions will test this and show a warning if the file
|
* version. Older Blender versions will test this and show a warning if the file
|
||||||
|
Loading…
Reference in New Issue
Block a user