OSG学习:OSG组成(一)——组成模块

以下内容来自:
1、《OpenSceneGraph三维渲染引擎编程指南》肖鹏 刘更代 徐明亮 清华大学出版社
2、《OpenSceneGraph3.0三维视景仿真技术开发详解》国防工业出版社
3、自己的总结

OSG工具

  一系列直接查看osg相关模型和信息的工具。以下所有语句都是在配置好环境变量的基础下,在cmd中运行

1、版本信息查看器osgVersion

  查看osg当前版本及相关信息。基本用法为:

osgversion
//查看命令行参数功能帮助 -h 或 --help
osgversion -h

2、场景浏览器osgViewer

  查看场景及其相关参数。基本用法为:

//osgviewer [options] filename
osgviewer cow.osg
//查看命令行参数功能帮助 -h 或 --help
osgviewer -h

3、场景图形压缩归档工具osgArchive

  创建和读取压缩格式的数据,生成的压缩文件可以在OSG程序(如osgViewer)运行时使用。基本用法为:

//查看命令行参数功能帮助 -h 或 --help
osgarchive -h
//创建压缩包
//osgarchive -a [压缩后目标文件名.osga] -i [压缩文件名/文件夹名]
osgarchive -a archive.osga -i cow.osg glider.osg
//列出压缩包中文件
//osgarchive -a [压缩包文件名] -l
osgarchive -a archive.osga -l
//解压压缩包
//osgarchive -a [压缩包文件名] -e [解压后文件名]
osgarchive -a archive.osga -e cow.osg

4、数据转换工具osgConv

  读取3D数据,执行基本的操作,并重新保存为新的3D数据文件。可读取标准3D文件格式,如OpenFlight、3DS、Alias和WaveFront(OBJ)等,并将其转换为OSG本地格式,如ASCII形式的.osg文件或二进制形式的.ive文件。默认情况下,它会对读入的场景图形进行优化,因而图形会变得更加小巧,运行会更加快速。.ive文件格式的读取更为快捷,特别适用于分页数据库和大型数据库文件的开发。
  使用osgConv可以把一个至多个文件压缩到一个.ive文件中,例如一次压缩两个(a+b-c.ive),则运行osgviewer c.ive可看到a和b包含的模型都出现在视口中;但若是使用osgArchive一次压缩两个(a+b-c.osga),则运行osgviewer c.osga只会出现头文件,视口出现a或b的模型。
  基本用法为:

//查看命令行参数功能帮助 -h 或 --help
osgconv -h
//将cow.obj转换为.ive文件
osgconv cow.obj cow.ive
//将cow.obj转换为.ive文件,同时进行压缩并自动生成细化纹理(mipmapped texture)
osgconv--compressed cow.obj cow.ive

OSG核心库(Core Library)

  实现最核心的场景数据库的组织和管理、对场景图形的渲染绘制和进程调度、为外部数据库的导入提供接口等。

1、OpenThreads库

  完成进程管理。在Windows系统下使用的是Windows编程中常用的进程调度方法。

2、osg库

  基本数据类,负责提供基本场景图类:渲染绘制、场景节点管理、图形绘制、渲染状态管理等。包含一些程序所需要的特定功能类,如命令行解析和错误调试信息等。

3、osgDB库

  数据的读写库,负责提供场景中数据的读写工作,包括数据分页管理等功能,提供了一个文件工具类。注意,OSG中场景图管理是通过遍历场景图层次结构来完成大部分的数据处理工作的。

4、osgViewer库

  是在OSG2.0后逐步发展稳定的一个视窗管理库,可以集中各种窗体系统,提供OSG与各种GUI的结合。因此,它是跨平台的3D管理窗口库。有了它其他库的功能才能得以发挥,可以理解更为场景管理库。

5、osgGA库

  提供事件响应功能,通过与操作系统交互,使得程序可以响应外来事件,如键盘、鼠标、方向盘等个类型事件。

6、osgUtil库

  工具类库,提供通用的共用类,用于操作场景图形及内容,如更新、裁剪、遍历、数据统计及场景图的一些优化。包括Delaunay三角面绘制功能、法线生成功能等。

OSG工具库(NodeKit)

  OSG工具库主要是对OSG核心库中osg库的扩充,它提供了某些特效和高级功能。

1、osgAnimation库

  场景动画处理库,可以控制OSG编程实现的动画或从外部导入到OSG的动画。

2、osgFX库

  特殊效果节点工具,用于渲染特效节点,包括异性光照特效(osgFX::AnisotropicLighting)、凹凸贴图特效(osgFX::BumpMapping)、卡通渲染特效(osgFX::Cartoon)、刻线特效(osgFX::Scribe)和立方图镜面高光特效(osgFX::SpecularHighlights)等。

3、osgParticle库

  粒子系统的节点工具,用于模拟各种天气或者自然现象效果,如雨效、雪效、火焰和爆炸模拟等。

4、osgSim库

  仿真工具库。虚拟仿真效果的节点工具,用于特殊渲染,如地形高程图、光点节点和DOF变换节点等。

5、osgTerrain库

  生成地形数据的节点工具,用于渲染高程数据,如TIF、IMAGE和DEM等各种高程数据格式。注意,OSG通过一个开源库GDAL读取这些高程数据。

6、osgText库

  文字节点工具,用于向场景中添加文字信息,它完全支持TrueType字体。可以显示1D、2D、3D文字,支持多国语言。

7、osgShadow库

  阴影节点工具,用于向场景中添加实时阴影,提高场景渲染的真实性。为多种阴影绘制技术给予支持。

8、osgVolume库

  实现体渲染,并提供各种体渲染的技术支持。

9、osgWidget库

  osg的UI库,提供了按钮、标签栏等常用UI设计功能。目前功能还不是很强大。

10、osgUtil库

  工具类库,提供通用的共用类,用于操作场景图形及内容,如更新、裁剪、遍历、数据统计及场景图的一些优化。包括Delaunay三角面绘制功能、法线生成功能等。

OSG插件库

  通过第三方库的支持,OSG能够直接或间接地导入3D模型或图片等场景数据,可以省去大量绘制图形的工作。

OSG内省库(osgIntrospection)

  提供了一个与语言无关的运行程序接口,确保OSG在更多环境下运行。允许软件系统使用反射式和自省式的编程范例与OSG交互。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值