diff options
author | Pascal Schoen <pascal_schoen@gmx.net> | 2017-02-06 13:32:31 +0300 |
---|---|---|
committer | Pascal Schoen <pascal_schoen@gmx.net> | 2017-02-06 13:32:31 +0300 |
commit | 26e906d162a6a8d67f2ebc8880993fcbab69559e (patch) | |
tree | edfea3cba91ca936f1b53b0923fb4789ab7776b8 /intern/cycles/blender | |
parent | 0593b8c51bf7db0ed5ca92ed6f68d0d984dad0dd (diff) | |
parent | 223aff987aba127243658ab181dd473198a06aa5 (diff) |
Merge branch 'master' into cycles_disney_brdf
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r-- | intern/cycles/blender/addon/engine.py | 2 | ||||
-rw-r--r-- | intern/cycles/blender/addon/properties.py | 14 | ||||
-rw-r--r-- | intern/cycles/blender/addon/ui.py | 10 | ||||
-rw-r--r-- | intern/cycles/blender/blender_mesh.cpp | 7 | ||||
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 3 | ||||
-rw-r--r-- | intern/cycles/blender/blender_shader.cpp | 9 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.cpp | 9 |
7 files changed, 49 insertions, 5 deletions
diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index 2c5365c9189..c8c9ef58c52 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -62,7 +62,7 @@ def _parse_command_line(): num_resumable_chunks = None current_resumable_chunk = None - # TODO(sergey): Add some nice error ptins if argument is not used properly. + # TODO(sergey): Add some nice error prints if argument is not used properly. idx = 0 while idx < len(argv) - 1: arg = argv[idx] diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 802b9b76c5d..5c51f9afc28 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -638,6 +638,20 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): items=enum_texture_limit ) + cls.ao_bounces = IntProperty( + name="AO Bounces", + default=0, + description="Approximate indirect light with background tinted ambient occlusion at the specified bounce, 0 disables this feature", + min=0, max=1024, + ) + + cls.ao_bounces_render = IntProperty( + name="AO Bounces Render", + default=0, + description="Approximate indirect light with background tinted ambient occlusion at the specified bounce, 0 disables this feature", + min=0, max=1024, + ) + # Various fine-tuning debug flags def devices_update_callback(self, context): diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index ddcefaf4c01..44af5f7efed 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -1038,10 +1038,11 @@ class CyclesWorld_PT_ambient_occlusion(CyclesButtonsPanel, Panel): layout = self.layout light = context.world.light_settings + scene = context.scene row = layout.row() sub = row.row() - sub.active = light.use_ambient_occlusion + sub.active = light.use_ambient_occlusion or scene.render.use_simplify sub.prop(light, "ao_factor", text="Factor") row.prop(light, "distance", text="Distance") @@ -1612,6 +1613,13 @@ class CyclesScene_PT_simplify(CyclesButtonsPanel, Panel): row.active = cscene.use_distance_cull row.prop(cscene, "distance_cull_margin", text="Distance") + split = layout.split() + col = split.column() + col.prop(cscene, "ao_bounces") + + col = split.column() + col.prop(cscene, "ao_bounces_render") + def draw_device(self, context): scene = context.scene layout = self.layout diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 66893d4d668..85117cfff7b 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -927,6 +927,13 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob, mesh->subdivision_type = object_subdivision_type(b_ob, preview, experimental); + /* Disable adaptive subdivision while baking as the baking system + * currently doesnt support the topology and will crash. + */ + if(scene->bake_manager->get_baking()) { + mesh->subdivision_type = Mesh::SUBDIVISION_NONE; + } + BL::Mesh b_mesh = object_to_mesh(b_data, b_ob, b_scene, diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 04b5c3fa013..2f30cbd961f 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -1352,6 +1352,9 @@ void BlenderSession::update_resumable_tile_manager(int num_samples) VLOG(1) << "Samples range start is " << range_start_sample << ", " << "number of samples to render is " << range_num_samples; + scene->integrator->start_sample = range_start_sample; + scene->integrator->tag_update(scene); + session->tile_manager.range_start_sample = range_start_sample; session->tile_manager.range_num_samples = range_num_samples; } diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 71fd59301b8..c9d4236a7f2 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -653,7 +653,8 @@ static ShaderNode *add_node(Scene *scene, image->filename.string(), image->builtin_data, get_image_interpolation(b_image_node), - get_image_extension(b_image_node)); + get_image_extension(b_image_node), + image->use_alpha); } } image->color_space = (NodeImageColorSpace)b_image_node.color_space(); @@ -699,7 +700,8 @@ static ShaderNode *add_node(Scene *scene, env->filename.string(), env->builtin_data, get_image_interpolation(b_env_node), - EXTENSION_REPEAT); + EXTENSION_REPEAT, + env->use_alpha); } } env->color_space = (NodeImageColorSpace)b_env_node.color_space(); @@ -836,7 +838,8 @@ static ShaderNode *add_node(Scene *scene, point_density->filename.string(), point_density->builtin_data, point_density->interpolation, - EXTENSION_CLIP); + EXTENSION_CLIP, + true); } node = point_density; diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index f8f2303ec76..d8043105cd8 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -322,6 +322,15 @@ void BlenderSync::sync_integrator() integrator->volume_samples = volume_samples; } + if(b_scene.render().use_simplify()) { + if(preview) { + integrator->ao_bounces = get_int(cscene, "ao_bounces"); + } + else { + integrator->ao_bounces = get_int(cscene, "ao_bounces_render"); + } + } + if(integrator->modified(previntegrator)) integrator->tag_update(scene); } |