Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2013-06-16 16:05:39 +0400
committerThomas Dinges <blender@dingto.org>2013-06-16 16:05:39 +0400
commit04295954408db25e749a897a7db2972049005688 (patch)
tree1db66e453f0599289762474e591fd2569ae0591f /intern/cycles/blender
parent9e16c5a9e429e0d00801a4dd6ee71a8fbf6691f0 (diff)
parent29be97975876a1f298f4e6dab14c75aa9956f96a (diff)
Merged revision(s) 57423-57498 from trunk/blender into soc-2013-dingto
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r--intern/cycles/blender/blender_object.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index 75f0c48a8a2..4a72341cd8c 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -209,7 +209,8 @@ Object *BlenderSync::sync_object(BL::Object b_parent, int persistent_id[OBJECT_P
/* light is handled separately */
if(object_is_light(b_ob)) {
- if(!motion)
+ /* don't use lamps for excluded layers used as mask layer */
+ if(!motion && !((layer_flag & render_layer.holdout_layer) && (layer_flag & render_layer.exclude_layer)))
sync_light(b_parent, persistent_id, b_ob, tfm);
return NULL;
@@ -317,8 +318,12 @@ Object *BlenderSync::sync_object(BL::Object b_parent, int persistent_id[OBJECT_P
return object;
}
-static bool object_render_hide_original(BL::Object::dupli_type_enum dupli_type)
+static bool object_render_hide_original(BL::Object::type_enum ob_type, BL::Object::dupli_type_enum dupli_type)
{
+ /* metaball exception, they duplicate self */
+ if(ob_type == BL::Object::type_META)
+ return false;
+
return (dupli_type == BL::Object::dupli_type_VERTS ||
dupli_type == BL::Object::dupli_type_FACES ||
dupli_type == BL::Object::dupli_type_FRAMES);
@@ -351,7 +356,7 @@ static bool object_render_hide(BL::Object b_ob, bool top_level, bool parent_hide
/* hide original object for duplis */
BL::Object parent = b_ob.parent();
- if(parent && object_render_hide_original(parent.dupli_type()))
+ if(parent && object_render_hide_original(b_ob.type(), parent.dupli_type()))
if(parent_hide)
hide = true;
@@ -363,7 +368,7 @@ static bool object_render_hide_duplis(BL::Object b_ob)
{
BL::Object parent = b_ob.parent();
- return (parent && object_render_hide_original(parent.dupli_type()));
+ return (parent && object_render_hide_original(b_ob.type(), parent.dupli_type()));
}
/* Object Loop */