怎样绘制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()

}

1929年,中国银行在伦敦设立中国金融业第一家海外分行。此后在世界各大金融中心相继开设分支机构,目前拥有遍布全球27个国家和地区的机构网络,其中境内机构共计11,000余个,境外机构共计600余个。

海外分支机构设置

http://www.boc.cn/cn/common/fourth.jsp?category=ROOT%3E%D6%D0%D0%D0%D7%DC%D0%D0%3E%B9%D8%D3%DA%D6%D0%D0%D0%3E%D6%D0%D0%D0%BB%FA%B9%B9%3E%BA%A3%CD%E2%B7%D6%D6%A7%BB%FA%B9%B9%3E%BA%A3%CD%E2%B7%D6%D6%A7%BB%FA%B9%B9%C9%E8%D6%C3


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存