OSG数据转换工具

537 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 13 天

1 概述

osgConv工具用于读取3D数据,执行基本的操作,并重新保存为新的3D数据文件。

2 使用osgConv 转换OSG本地文件格式

osgConv 可用于读取标准3D文件格式,如OpenFlight、3DS、Alias和 Wavefront(OBJ)等,并 将其转换为OSG本地格式,如ASCII形式的.osg文件或者二进制形式的.ive文件。默认情况下,它将对读入的场景图形进行优化,转换后的场景图形因此会变得更加小巧,在运行时也更加快速。ive文件格式的读取更为快捷,它特别适用于分页数据库和大型数据库文件的开发。

下面的命令用于将 cow.obj转换为.ive文件:

osgcony.cow.obj.cow.ive

下面的命令用于将 cow.obj 转换为.ive 文件,同时进行压缩并自动生成细化纹理(mipmappedtexture):

osgcony-compressed cow.obj.cow.ive

3 命令行参数

输出参数操作信息的命令如下:

osgconv-belp

使用方法如下:

osgconv [options]infilel [infile2.]outfile

参数选项如表所示。

参数说明
-O optionReader Writer 选项
-compressed使用压缩纹理
-compressed-arb使用OpenGL ARB压缩纹理
-compressed-dxtl使用S3TC DXTI压缩纹理
-compressed-dxt3使用 S3TC DXT3 压缩纹理
-compressed-dxt5使用 S3TC DXT5压缩纹理
-fix-transparency修正不透明状态属性,默认模式为MAKE OPAQUE TEXTURE STATESET OPAQUE
--fix-transparency-mode指定模式修正不透明状态属性,可以选择的模式有:MAKE_OPAQUE_TEXTURE STATESET OPAQUE 和 MAKE ALL STATESET OPAQUE
-l libraryName加载指定的插件库,如—losgdb_pfb。当需要指定一个插件库来加载某种格式的文件时,这HbraryName个参数是十分有用的
-e extensionName为指定的文件扩展名加载文件读/写插件,如—epfb。这个参数有时比4参数更为方便,因为-e extensionName它会自动根据插件库文件在不同的平台位置加载插件
-o orientation将输入文件的几何体变换方位后转换到输出文件,方位参数的格式如下所示:X1,Y1,Z1-X2,Y2.22/角度值:AD.AL.A2其中,X1、Y1、Z1表示输入文件垂直轴的向量,而X2、Y2、Z2表示输出文件垂直轴的向量:如果使用角度值,则它表示绕(AO,A1,A2)轴的旋转角度,例如,我们希望将一个Y轴为垂直轴的坐标系统下的模型转换到Z轴为垂直轴的坐标系下,其参数可以设置为:0.1.0—0.0.1 或—90—1,0.0
-t translation转换输出文件的空间位置信息。位置参数的格式如下所示:XY.Z其中,X、Y、Z表示世界空间下的绝对坐标
-s scale缩放模型的尺寸,缩放参数的格式如下所示:SX.SY,SZ其中,SX、SY、SZ表示放缩因子,注意,放缩是在日标文件的坐标系下完成的
--smooth为每一个Geometry生成项点法线,使模型表面平滑
-addMissingColors为没有颜色的Geometry 添加颜色(白色)
-overallNormal用单一法向量替代所有法向量
-formats输出所有支持的文件的格式和操作信息
-format输出指定文件的格式和操作信息
-plugin输出指定的插件库的目录和文件格式信息

到此为止,OSG的4个实用工具已经介绍完毕,希望读者能够熟练地使用。虽然它们只是作为工具,但是在实际的项目开发过程中是非常有实用意义的。例如,可以使用 osgViewer 浏览工程模型,并输出统计信息,判断是否需要优化:可以使用osgArchive 来打包整个工程文件,方便文件的管理:可以使用 osgConv 来转换数据,转换成.ive格式可以加速场景渲染。在以后的学习过程中,读者会发现它们是OSG不可缺少的一部分。

通过本节的学习,读者应该对OSG有一个总体的了解,同时,也应该对OSG的设计、体系及组件有一定的了解,并熟悉OSG实用工具的使用方法,在第1章并没有介绍编程细节,读者不要急于进行编程开发。如果还没有熟悉本章内容,可静下心来再看一遍。

接下来的章节将从各个方面讲解如何来编写OSG程序实现常用的渲染效果。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 13 天