开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 13 天
1 版本信息查看器 osgVersion
版本信息查看器 osgVersion 一般情况下很少用,因为它本身没有很大的用途,只用于记录当前版本的一些信息。它的使用方法同osgViewer,即选择“开始”—“运行”命令,在打开的“运行”对话框中输入“cmd”命令,在打开的控制台窗口的提示符后输入“osgversion+相应的参数”即可使用,这里不再具体讲解。
参数说明如表所示。
参数 | 说明 |
---|---|
-major-number | 只输出版本号的主号 |
--minor-number | 只输出版本号的副号 |
-openthreads-soversion-number | 只输出共享OpenThreads的版本号 |
-openthreads-version-number | 只输出Open Threads的版本号 |
--patch-number | 只输出版本修正号 |
-so-number | 只输出共享版本号 |
--version-number | 只输出版本号 |
-h or-help | 显示帮助信息 |
-r or -read | 读取贡献者名单文件 |
2 场景图形压缩归档工具 osgArchive
osgArchive 工具用于创建和读取压缩格式的数据,生成的压缩文件可以在OSG程序(如osgViewer)运行时使用。 运行osgArchive 命令行,可以得到其参数信息,如表所示。
参数 | 说明 |
---|---|
-h or-help | 显示帮助信息 |
-a or -archive | 指定压缩后目标文件名(osga) |
-i or -insert | 在压缩包中插入模型 |
-e or -extract | 从压缩包中抽取文件 |
-l or-list | 列出压缩包中所有文件 |
2.1 如何使用 osgArchive
(1)创建新的压缩包
创建新压缩包时,需要通过—i<filename>来指定压缩包文件名,包括其扩展名,然后将3D文件和图片文件以—i<filename>[<filename>..]的格式添加到压缩包中,具体格式如下所示:
osgarchive-a archive.osga-i cow.ong glider.ong
也可以使用相同的参数格式压缩整个目录,例如:
osgarchive-& archive.osga-i mydirectory
.osga格式还支持主文件的形式,即设定添加到压缩包的第一个文件是主文件。
(2)列出压缩包中的文件
可以使用—1参数来列出指定压缩包中所有的文件,例如:
osgarchive-aarchive.osga-l
这样可以打印出压缩包中包含的文件列表。
(3)从压缩包中解压文件
可以使用—e<filename>[<filename>..]的格式从指定压缩包中解压文件,例如:
[<filename>_]syntanx:
osgarchive-n archive.osga-c.cow.ong
2.2 在其他OpenSceneGraph程序中使用压缩包文件
压缩文件可以按照普通OSG文件的形式来读取,此时第一个解压的文件将作为osgDB 返回的结果,如果要加载压缩包的主文件,只需要执行如下命令:
esgvicwer archive.osga
如果希望读取压缩包中的某个文件,则执行如下命令:
ongvicwer archive.onga/glider.ong
编写代码时,可以按照如下方式实现压缩包的读取:
ong:ref_ptrcong:Node masterNode osgDB:readNodeFile("archive.osga"); osg:ref_ptrsosg:Node>gliderNode-osgDB:readNodeFile("archive.osga/glider.osg");
2.3 为osgdem的分页数据生成压缩包
osgdem 程序支持生成.osga压缩文件,只要指定—a<filename>,就可以将osgdem 生成的纹理贴图放置到一个指定的压缩包中。
2.4 支持压缩的文件格式
OpenSceneGraph的压缩包机制允许使用istream和ostream 来操作压缩包的数据流,但并不是所有的3D模型和图片格式都支持 istream和ostream操作。
下面列出了目前支持压缩包机制的几种文件格式。
- osg:OpenSceneGraph 本地 ASCII格式。
- .ive:OpenSceneGraph本地二进制格式。
- dds:DirectDrawSurface 图片文件格式。
- jp2:JPEG2000图片文件格式。
虽然支持的文件格式种类不同,但是大部分格式都可以转换为.osg或者.ive格式,从而可以使用该工具处理大部分OSG支持的文件。