首页 百科知识 场景图形管理之核心库

场景图形管理之核心库

时间:2022-02-01 百科知识 版权反馈
【摘要】:OSG主要包括四个库,下面分别进行介绍。注意,OSG中场景图管理是通过遍历场景图层次结构来完成大部分的数据处理工作的。osg Introspection库允许软件系统使用反射式和自省式的编程范例与OSG交互。为了弥补C++的这一不足,OSG提供了一系列自动生成的、从OSG源代码创建的封装库。综上所述,OSG的组成模块如图7-9所示。图7-9 OSG组成模块图
组成模块_地学三维可视化

通过前面的介绍已经了解,Open Scene Graph及其扩展位于系统的API一级,即系统的底层绘图硬件和相应的软件驱动程序之上封装了Open GL,并对其余的底层图形显示方式予以支持,利用Open Scene Graph可以轻松地开发其上层的应用程序。OSG的层次结构如图7-8所示。

OSG主要包括四个库,下面分别进行介绍。

1.OSG核心库(Core Library)

核心库是OSG的核心,也是其存在且不断得到发展的根本原因。它的主要功能就是实现最核心的场景数据库的组织和管理、对场景图形的操作以及为外部数据库的导入提供接口等。它主要包括以下四个库。

图7-8 OSG的层次结构

(1)osg库:基本数据类,负责提供基本场景图类,构建场景图形节点,如节点类、状态类、绘制类、向量和矩阵数学计算以及一般的数据类。同时,它包含一些程序所需要的特定功能类,如命令行解析和错误调试信息等。

(2)osg Util库:工具类库,提供通用的公用类,用于操作场景图形及内容,如更新、裁剪、遍历、数据统计及场景图的一些优化

(3)osg DB库:数据的读写库,负责提供场景中数据的读写工作,提供了一个文件工具类。注意,OSG中场景图管理是通过遍历场景图层次结构来完成大部分的数据处理工作的。

(4)osg Viewer库:是在OSG 2.0后逐步发展稳定的一个视窗管理库,可以集中各种窗体系统,提供OSG与各种GUI的组合。因此,它是跨平台的3D管理窗口库。

2.OSG工具库(Node Kit)

OSG工具库主要是对OSG核心库中osg库的扩充,是对OSG核心库的一个补充,它实现了一些特定的功能。它主要包括以下六个库。

(1)osg FX库:特殊效果节点工具,用于渲染特效节点,包括异性光照特效(osg FX::Ani-sotropic Lighting)、凹凸贴图特效(osg FX::Bump Mapping)、卡通渲染特效(osg FX::Car-toon)、刻线特效(osg FX::Scribe)和立方图镜面高光特效(osg FX::Specular Highlights)等。

(2)osg Particle库:粒子系统的节点工具,用于模拟各种天气或者自然现象效果,如雨效、雪效和爆炸模拟等。

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

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

(5)osg Text库:文字节点工具,用于向场景中添加文字信息,它完全支持True Type字体。

(6)osg Shadow库:阴影节点工具,用于向场景中添加实时阴影,提高场景渲染的真实性。

3.OSG插件库

OSG插件库是OSG的一个非常重要的特点。通过各种第三方库的支持,OSG能够直接或间接地导入3D模型或图片等场景数据,可以省去大量绘制图形的工作,从而极大地方便开发者。具体支持的各种数据格式可参见第五章。

4.OSG内省库(osg Introspection)

OSG内省库提供了一个与语言无关的运行程序接口,确保了OSG可以在更多的环境下运行。osg Introspection库允许软件系统使用反射式和自省式的编程范例与OSG交互。应用程序和软件可以使用osg Introspection库和方法迭代OSG的类型、枚举量和方法,并且不需要了解OSG编译和链接时的过程,即可调用这些方法。Smalltalk和Objective C等语言包括了内建的反射式和自省式支持,但是C++的开发者通常无法运用这些特性,因为C++并未保留必要的元数(Metadata)。为了弥补C++的这一不足,OSG提供了一系列自动生成的、从OSG源代码创建的封装库。用户程序不需要与OSG的封装直接交互,它们将由osg Intro-spection整体进行管理。由于osg Introspection及其封装的结果,许多的语言如Java、TCL、Lua和Python,都可以与OSG进行交互。

综上所述,OSG的组成模块如图7-9所示。

图7-9 OSG组成模块图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈