开启掘金成长之旅!这是我参与「掘金日新计划 · 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 option | Reader 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程序实现常用的渲染效果。