美国海军研究生学校(NPS)OSG教程学习笔记——第三课
2010-01-25 23:12
281 查看
通过前两课的学习,我们可以感觉到即使自己创建一个简单的四面体,都需要进行大量的编码,更别说一些更复杂的几何体,比如球体,立方体,柱体,圆锥体等。难道没有更好的方法么?答案是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。
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。
相关文章推荐
- 美国海军研究生学校(NPS)OSG教程学习笔记——第一课
- 美国海军研究生学校(NPS)OSG教程学习笔记——第二课
- OSG(美国海军NPS)教程学习加实践(2)
- 学校学习ios教程笔记,第十二节初识ios控制器中的标签视图控制器
- 2011斯坦福大学iOS应用开发教程学习笔记(第三课)Objective-C
- 思科网技术学院教程(第三、四学期第二版)学习笔记与要点归纳
- 学校学习ios教程笔记,第七节swift中的类与对象的属性和懒加载
- 2011斯坦福大学iOS应用开发教程学习笔记(第三课)Objective-C
- 斯坦福大学iOS应用开发教程学习笔记(第三课)Objective-C
- 学校学习ios教程笔记,第四节swift中可变数组和不可变数组以及元组的概念与操作
- 炼数成金CUDA视频教程——第三课2——学习笔记
- 学校学习ios教程笔记,第八节初识ios控件中的UILable与UITextField
- 学校学习ios教程笔记,第五节swift中的字典以及枚举的概念与操作和初识函数
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第三课)
- 《Unix & Linux 大学教程》 - 第三、四章 学习笔记
- 斯坦福大学iOS应用开发教程学习笔记(第三课) Objective-C
- 学校学习ios教程笔记,第十一节初识ios页面中的界面传值
- 《Unix & Linux 大学教程》 - 第三、四章 学习笔记
- 学校学习ios教程笔记,第十节初识ios中的导航栏控制器页面跳转(UINavigationController)和模态
- 《Unix & Linux 大学教程》 - 第三、四章 学习笔记 .