该用户从未签到
使用道具 举报
array 发表于 2012-8-14 16:26 请注意OpenGL的clip plane是有数量限制的,不能超过6个
case (osgGA::GUIEventAdapter::KEYDOWN): { if (ea.getKey()=='C'||ea.getKey()=='c') { osg::Geode *geode1=createPoly(pointList); osg::StateSet *stateset=geode1->getOrCreateStateSet(); osg:olygonMode *polygonmode=new osg::PolygonMode; polygonmode->setMode(osg::PolygonMode::FRONT_AND_BACK,osg::PolygonMode:INE); stateset->setAttributeAndModes(polygonmode,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON); osg::ref_ptr<osg::ClipNode> cn=new osg::ClipNode; osg::Geode* cut2=createPoly(pointList); osg::BoundingSphere bs=cut2->getBound(); bs.radius()=5.0f; osg::BoundingBox bb; bb.expandBy(bs); cn->addChild(model); cn->createClipBox(bb,0); cn->setCullingActive(false); root->setStateSet((cn->getStateSet())); } } break;
array 发表于 2012-8-21 09:48 您的这段程序没有明显可能出错的地方,您可以用debug模式来检查一下调用堆栈的信息,看看是哪行语句有问题, ...
array 发表于 2012-8-21 10:28 此外我不认为ClipNode可以实现挖洞的功能,因为6个裁减面实在是太少了。Stencil的方法是最好的,并且我知道 ...
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。
|小黑屋|手机版|Archiver|OSG中国官方论坛 ( 陕ICP备14000835号-1 )
GMT+8, 2024-11-28 06:39