diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-16 20:18:14 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-16 20:18:14 +0400 |
commit | c9fc3874d68630c3a4ebeca0c7ae964e5c9a901f (patch) | |
tree | 7b05c3a409c61228b7b93a2d83a9e9558d0eafe4 /intern/cycles/blender/blender_sync.cpp | |
parent | c1276960e8714828645899391e924f44d13d1043 (diff) |
Cycles: when render layers have per layer number of samples set, the Sampling
panel now has an option to specify how to use them. There's three options:
* Use: render layer samples override scene samples
* Bounded: bound render layer samples by scene samples
* Ignore: ignore render layer sample settings
Diffstat (limited to 'intern/cycles/blender/blender_sync.cpp')
-rw-r--r-- | intern/cycles/blender/blender_sync.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 721eaeefc08..501c7648731 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -224,12 +224,11 @@ void BlenderSync::sync_film() void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer) { + PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); string layername; /* 3d view */ if(b_v3d) { - PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); - if(RNA_boolean_get(&cscene, "preview_active_layer")) { BL::RenderLayers layers(b_scene.render().ptr); layername = layers.active().name(); @@ -245,6 +244,7 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer) render_layer.use_background = true; render_layer.use_viewport_visibility = true; render_layer.samples = 0; + render_layer.bound_samples = false; return; } } @@ -252,6 +252,7 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer) /* render layer */ BL::RenderSettings r = b_scene.render(); BL::RenderSettings::layers_iterator b_rlay; + int use_layer_samples = RNA_enum_get(&cscene, "use_layer_samples"); bool first_layer = true; for(r.layers.begin(b_rlay); b_rlay != r.layers.end(); ++b_rlay) { @@ -271,7 +272,10 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer) render_layer.use_background = b_rlay->use_sky(); render_layer.use_viewport_visibility = false; render_layer.use_localview = false; - render_layer.samples = b_rlay->samples(); + + render_layer.bound_samples = (use_layer_samples == 1); + if(use_layer_samples != 2) + render_layer.samples = b_rlay->samples(); } first_layer = false; |