Blender Internal: Bring back previous behavior that rendered viewport uses render...
authorIRIE Shinsuke <irieshinsuke@yahoo.co.jp>
Thu, 27 Feb 2014 20:17:16 +0000 (05:17 +0900)
committerIRIE Shinsuke <irieshinsuke@yahoo.co.jp>
Thu, 27 Feb 2014 20:47:55 +0000 (05:47 +0900)
Commit 162d6c73e3d0 changed the behavior of rendered viewport to use
viewport visibility, but that can cause some problems. For example,
mesh deform cage is drawn as a solid/textured mesh (not a wireframe
mesh) and its unnecessary surfaces and shadows mess up the preview.

source/blender/render/intern/source/convertblender.c

index 3e9e1b1c5e5f31f0535099c2bd205628083822c6..8844fae904b2a9993a37099555df3ffdd7f66d2b 100644 (file)
@@ -3929,7 +3929,12 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
 static bool is_object_hidden(Render *re, Object *ob)
 {
        if (re->r.scemode & R_VIEWPORT_PREVIEW)
-               return (ob->restrictflag & OB_RESTRICT_VIEW) != 0;
+               /* note: in rendered viewport, for now we always use render visibility rather than
+                * viewport visibility, because using viewport visibility can cause some problems.
+                * for example, mesh deform cage is drawn as a solid/textured mesh (not a wireframe
+                * mesh) and its unnecessary surfaces and shadows mess up the preview. we need more
+                * discussion about the way to take viewport visibility into account. */
+               return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
        else
                return (ob->restrictflag & OB_RESTRICT_RENDER) != 0;
 }