查看: 1058|回复: 1

osg如何绘制一个点还有设置其属性

[复制链接]

该用户从未签到

发表于 2015-9-26 10:37:33 | 显示全部楼层 |阅读模式
本帖最后由 Bean 于 2015-9-26 11:31 编辑

如题,怎样绘制一点,只绘制一个点还有设置其属性

这是我代码,大家看看有问题吗
  1.         osg::ref_ptr<osg::Vec3Array> v = new osg::Vec3Array();
  2.         osg::ref_ptr<osg::Geometry> geom = new osg::Geometry;
  3. //        osg::ref_ptr <osg::Point> point = new osg::Point(10.0);
  4. //        LineSize ->setWidth (4.0) ;
  5.         v->push_back(v1);
  6.         //geom->getOrCreateStateSet()->setAttributeAndModes(LineSize.get (),osg::StateAttribute::ON);
  7.         osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet;
  8.         osg::ref_ptr<osg::Point> point = new osg::Point;

  9.         point->setSize(25.0f);
  10.         stateset->setAttribute(point);
  11.         geom->setStateSet(stateset);

  12.         geom->setVertexArray( v.get() );
  13.         osg::ref_ptr<osg::Vec4Array> c = new osg::Vec4Array;
  14.         geom->setColorArray( c.get() );
  15.         geom->setColorBinding(osg::Geometry::BIND_OVERALL);
  16.         c->push_back(osg::Vec4( 1.0f, 0.0f, 0.0f, 0.3f ));

  17.         osg::ref_ptr<osg::Vec3Array> n = new osg::Vec3Array;
  18.         geom->setNormalArray( n.get() );
  19.         geom->setNormalBinding( osg::Geometry::BIND_OVERALL );
  20.         n->push_back(osg::Vec3(0.1,0.1,0.9));

  21.         //设置顶点关联方式
  22.         geom->addPrimitiveSet(
  23.                 new osg::DrawArrays( osg::PrimitiveSet::POINTS,0,v->size() ) );

  24.         //几何组结点
  25.         osg::ref_ptr<osg::Geode> geode = new osg::Geode;
  26.         geode->addDrawable( geom.get() );
  27.         geode->getOrCreateStateSet()->setMode( GL_LIGHTING, osg::StateAttribute::OFF);
  28.         geode->setName("Point");
  29.         RootNode->addChild(geode);
复制代码

该用户从未签到

发表于 2016-3-17 14:37:31 | 显示全部楼层
我用这种方式去做绘制,然而并绘制不出来,假设我绘制两个点,当两个点重位置的时候绘制不出来,不同位置的时候可以绘制出两个点,请问你是否找到解决的问题了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表