diff options
Diffstat (limited to 'intern/cycles/blender/blender_object.cpp')
-rw-r--r-- | intern/cycles/blender/blender_object.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index edd5f292c79..80768c096e3 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -365,13 +365,12 @@ Object *BlenderSync::sync_object(BL::Object& b_parent, } /* make holdout objects on excluded layer invisible for non-camera rays */ - if(use_holdout && (layer_flag & render_layer.exclude_layer)) + if(use_holdout && (layer_flag & render_layer.exclude_layer)) { visibility &= ~(PATH_RAY_ALL_VISIBILITY - PATH_RAY_CAMERA); + } - /* camera flag is not actually used, instead is tested against render layer - * flags */ - if(visibility & PATH_RAY_CAMERA) { - visibility |= layer_flag << PATH_RAY_LAYER_SHIFT; + /* hide objects not on render layer from camera rays */ + if(!(layer_flag & render_layer.layer)) { visibility &= ~PATH_RAY_CAMERA; } @@ -572,7 +571,6 @@ void BlenderSync::sync_objects(BL::SpaceView3D& b_v3d, float motion_time) bool hide = (render_layer.use_viewport_visibility)? b_ob.hide(): b_ob.hide_render(); uint ob_layer = get_layer(b_base->layers(), b_base->layers_local_view(), - render_layer.use_localview, object_is_light(b_ob), scene_layers); hide = hide || !(ob_layer & scene_layer); |