研究内容 osg三维消隐
现有的常用的几种消隐算法主要有:Z—buffer算法、扫描线算法、画家算法、BSP树算法
结论:消隐算法皆基于面进行消隐,且osg中没有直接进行线消影算法
背面剔除对凸面体是完美的,但对于其它的就无能为力
osg::ref_ptr<osg::CullFace> cullface=new osg::CullFace(osg::CullFace::BACK); state->setAttribute(cullface.get()); state->setMode(GL_CULL_FACE,osg::StateAttribute::ON);
暂时方案:把物体模型按照背景色画(这样的目的是为了得到正确的深度缓存),然后用osg把这些检测的边给画出来,这样我们可以看到线消隐后的效果。但是仅仅这样我们不知道具体是哪些边是可见的哪些是被消隐的。于是想按照这些检测出来的边的标号给边赋颜色,然后到颜色缓存中读出相应的颜色,由于颜色与边对应了,所以存在哪种颜色,那么对应的边是可见的(未被消隐的)。