美国海军研究生学校(NPS)OSG教程学习笔记——第三课

      通过前两课的学习,我们可以感觉到即使自己创建一个简单的四面体,都需要进行大量的编码,更别说一些更复杂的几何体,比如球体,立方体,柱体,圆锥体等。难道没有更好的方法么?答案是Absolutely YES!

      osg内置十种常用的几何体,分别是Sphere,Box,Cylinder,Cone,Capsule,HeightField,InfinitePlane,TriangleMesh(派生出ConvexHull),KdTree和CompositeShape,所有这些类都是派生自osg::Shape。

      如同绘制自定义几何体一样,我们需要将创建出来的内嵌几何体通过Drawable加载到Geode上,ShapeDrawable就是完成这个功能的,他和Geometry都是派生自osg::Drawable。好了,把内置几何体加载到场景图中的流程就非常清晰了:

      第一步:创建内嵌几何体对象

      osg::ref_ptr<osg::Box*> box = new osg::Box(osg::Vec3(0.0, 0.0, 0.0), 1.0));    //在原点创建一个边长为1的立方体

      第二步:将几何体和ShapeDrawable关联起来

      osg::ref_ptr<osg::ShapeDrawable*> shape_drawable = new osg::ShapeDrawable(box.get());

      第三步:将ShapeDrawable加到Geode节点上

      geode->addDrawable(shape_drawable.get());

      至此,我们就完成了向场景图中加载简单的内置几何体,如何让这些几何体更加漂亮呢?请继续关注下一课的学习。

   

      欢迎大家来信和我交流,我的邮箱是batonyh@163.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值