diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-05-06 19:44:43 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-05-06 19:47:48 +0400 |
commit | 5cee409d42ff33ce4f3d7fa98655867b2c84b701 (patch) | |
tree | 3d10a570c4e8b4c94d342f92bf36cada49e4e842 /source/blender/render | |
parent | 9fe618e309157ff0534846c5d7a00a62227d1205 (diff) |
Followup fix to T39966.
The previous fix was not quite correct:
* It would use the same wireframe/bbox check in viewport- and regular render
* The duplicator loop in Blender Internal is more permissive now to avoid disabling wireframe duplicators, but this means we need to check is_object_hidden right before making render objects to ensure this still works.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index dfd0531f16d..18c9434929f 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -3924,10 +3924,15 @@ static bool is_object_hidden(Render *re, Object *ob) if (is_object_restricted(re, ob)) return true; - /* Mesh deform cages and so on mess up the preview. To avoid the problem, - * viewport doesn't show mesh object if its draw type is bounding box or wireframe. - */ - return ELEM(ob->dt, OB_BOUNDBOX, OB_WIRE); + if (re->r.scemode & R_VIEWPORT_PREVIEW) { + /* Mesh deform cages and so on mess up the preview. To avoid the problem, + * viewport doesn't show mesh object if its draw type is bounding box or wireframe. + */ + return ELEM(ob->dt, OB_BOUNDBOX, OB_WIRE); + } + else { + return false; + } } /* layflag: allows material group to ignore layerflag */ @@ -4795,6 +4800,9 @@ void RE_Database_Free(Render *re) static int allow_render_object(Render *re, Object *ob, int nolamps, int onlyselected, Object *actob) { + if (is_object_hidden(re, ob)) + return 0; + /* override not showing object when duplis are used with particles */ if (ob->transflag & OB_DUPLIPARTS) { /* pass */ /* let particle system(s) handle showing vs. not showing */ |