怎样绘制osg包围球框(就像包围盒框那样),急急急急

怎样绘制osg包围球框(就像包围盒框那样),急急急急,第1张

楼主既然知道怎么绘制包围盒边框,那绘制包围球不也类似吗。先得到节点的包围球,再得到包围球的中心坐标和半径,再根据取得的中心坐标和半径调用shapeBall函数画出包围球不就行了吗?

但是有个问题包围球怎么会有线框呢?你要的是一个透明的包围球吧?

代码如下:

osg::ref_ptr<osg::Geode>createBoudingShpere(osg::Node * node)

{

osg::ref_ptr<osg::Geode>geode = new osg::Geode()

const osg::BoundingSphere bs = node->getBound()

float radius =bs.radius()

osg::ref_ptr<osg::TessellationHints>hints = new osg::TessellationHints

hints->setDetailRatio(0.5f)

osg::Vec3 v = bs._center

osg::ShapeDrawable *shapeBall=new osg::ShapeDrawable(new osg::Sphere(v,radius),hints.get())

shapeBall->setColor(osg::Vec4(1.0f,1.0f,0.5f,0.3f))

geode->addDrawable(shapeBall)

osg::ref_ptr<osg::StateSet>stateset = geode->getOrCreateStateSet()

stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF)

stateset->setMode(GL_BLEND, osg::StateAttribute::ON | osg::StateAttribute::PROTECTED)

stateset->setRenderingHint(osg::StateSet::TRANSPARENT_BIN)

return geode.release()

}

首先把要使用Ctrl+A的后可以看到的图片变50%透明,然后用可以看到的图片做底图,然后把先透明50%的图片重叠上去!保存!呵呵!看看效果吧! 我靠。大哥,你做一个给我看看。真他妈的异想天开。

楼主是不是说Ctrl+A就显示看不到的一张图的那种。

http://post.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=1153238344&z=130201886&pn=0&rn=50&lm=0&word=photoshop#1153238344 这里有制作方法。

有一步是下面的图层要 30% 三层。叠加出来就可以看到效果

文件不要太大。要不也看不到效果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7889667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存