It seems there is a bug with osg::ClipNode, by using osg::ClipPlane it fixes the issue.
OSG 3.6.3 On Wed, 23 Oct 2019 at 13:48, Catalin <inbox....@gmail.com> wrote: > Hi, > > I have an issue with clipping planes, if you set 2 different clipping > planes to 2 different objects, only the last clipping plane is used. I was > expecting each object to be drawn with its clipping plane. > > osg::ref_ptr<osg::ClipNode> clipNode1 = new osg::ClipNode; > clipNode1->addClipPlane(new osg::ClipPlane(0)); > clipNode1->getClipPlane(0)->setClipPlane(1.0, 0.0, 0.0, -2000.0); > > osg::ref_ptr<osg::ClipNode> clipNode2 = new osg::ClipNode; > clipNode2->addClipPlane(new osg::ClipPlane(0)); > clipNode2->getClipPlane(0)->setClipPlane(-1.0, 0.0, 0.0, -2000.0); > > osg::ShapeDrawable* s1 = new osg::ShapeDrawable(new > osg::Box(osg::Vec3(2000, 0, 0), 500)); > clipNode1->addChild(s1); > osg::ShapeDrawable* s2 = new osg::ShapeDrawable(new > osg::Box(osg::Vec3(-2000, 0, 0), 500)); > clipNode2->addChild(s2); > > Every box is shown in half because of the clipping plane. > > *Case 1* > root->addChild(clipNode1); > //root->addChild(clipNode2); > > [image: image.png] > > *Case 2* > //root->addChild(clipNode1); > root->addChild(clipNode2); > > [image: image.png] > > *Case 3* > root->addChild(clipNode1); > root->addChild(clipNode2); > > [image: image.png] > > I was expecting both boxes, S1 and S2 to be drawn. > >
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org