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

Reply via email to