• [转]osgconv工具简介


    osgconv是一种用来读取3D数据库以及对它们实施一些简单的操作的实用应用程序,同时也被称作

    一种专用3D数据库工具。


    用osgconv把其他格式的文件转换为OSG所支持的格式

       osgconv是一种非常有用的的工具来读取标准的3D格式,如OpenFlight,3DS,Alias Wavefront
    (OBJ) etc,并且可以将它们转换为一种OSG所支持的格式,如OSG中的ASCII格式的.osg,二进制格式的.ive。
    在程序运行的默认情况下,优化导入的场景图,将形成的这样结果:场景图读取的数据量将会更少且速度会更
    快。尤其值得指出的是,.ive格式的的文件,快速装载数据的能力使它非常适合数据页和大型的数据库。

       把文件从.obj格式转换为同等的.ive格式,命令如下:
       
       osgconv cow.obj cow.ive
       
       把文件从.obj格式转为为同等的.ive格式,并压缩自动生成映射纹理,命令如下:

       osgconv osgconv --compressed cow.obj cow.ive 


    osgconv的操作:
       
       下面是osgconv的所有操作,可以通过下面的命令来查看:
        
        osgconv --help

        使用用法:
         osgconv [options] infile1 [infile2 ...] outfile 

        操作:

    -O   ReadWrite选项

    --compressed   压缩纹理

    --compressed   启用压缩纹理

    --compressed-arb   启用OPENGL ARB压缩纹理

    --compressed-dxt1  启用S3TC DXT1压缩纹理  

    --compressed-dxt3  启用S3TC DXT3压缩纹理

    --compressed-dxt5  启用S3TC DXT5压缩纹理

    这些压缩手段小米手机都不支持,不过一般的平板是支持的

    基于OpenGL ES的压缩纹理有常见的如下几种实现:

    1. ETC1(Ericcson texture compression)
    2. PVRTC(PowerVR texture compression)
    3. ATITC(ATI texture compression)
    对于使用NVIDIA Tegra2芯片的手机如Motorola XOOM,ATRIX和DRIOID BIONIC则支持如下的纹理压缩
    4. S3TC(S3 texture compression)

    GPU“兼容性”

    现在还有个经常被提到的是GPU的“兼容性”问题,这里就要涉及到各个GPU支持的纹理格式了。

    首先是ETC1,这个是OPENGL ES 2.0支持的纹理格式,大家都得支持。但这个纹理的一个缺点是不支持alpha通道,所以对于有alpha通道的纹理,就要拆成2个纹理去读取,效率低,浪费了带宽。

    而PVRTC是PowerVR自家的纹理格式,同样ATITC是高通Adreno的纹理格式,此外S3TC就是桌面很常见的DXT,微软DirectX 3D的纹理格式,这些都是支持alpha通道的。

    PowerVR GPU支持自家的PVRTC和通用的ETC1(iOS下的PVR GPU只支持PVRTC),Adreno支持自家的ATITC和通用的ETC1,NV的GeForce和Vivante的GC系列支持DXT和ETC1,剩下Mali-400只支持ETC1。所以,对应不同的GPU,会有不同的游戏数据包。通用数据包,一般都会采用ETC1,虽然通用,但由于不支持alpha通道要贴图2次,对于非Mali的GPU其实都算是吃亏了。如果用自己支持的其他格式,就不用受这个苦了。对于贴图单元(TMU,Texture Mapping Unit)数目相对较少的Adreno 2xx系列,恐怕更是吃亏。

    当然,纹理的支持度只是兼容性的一方面,并不是兼容性问题的全部。

    -l libraryName     装载名为libraryName的插件,如-l osgdb_pfb
    用来Read/Write一些导入的除了它本身扩展名的的文件格式

    -e extensionName    装载扩展名为extensionName的Read/Write插件 如-e pfb
    很有用的工具,用来指定装载所有扩展名为extensionName的插件,其作用方式和上面 
    的-l一样 ,因为它会自动扩展至全部插件名以适合每个平台。 

    -o orientation      input和output文件之间的几何变换
    定位方向的格式参数应该象下面一样:

    X1,Y1,Z1-X2,Y2,Z2
    or
    degrees-A0,A1,A2

    X1,Y1,Z1表示在input文件中的一个向量,X2,Y2,Z2表示在output文件中的一个向量
    degrees表示绕轴(A0,A1,A2)旋转的角度。例如:把一个建立在Y轴向上的坐标系中MODEL
    转换为一个Z轴向上的坐标系,参数形式应该是这样的:

    0,1,0-0,0,1 
    or 
    -90-1,0,0 

    -t translation  平移output文件的空间位置
    平移的参数格式必须象下面这样:
    X,Y,Z
    在这里,X,Y,Z表示在坐标系中的绝对距离

    -s scale       缩放MODEL的大小
    缩放的参数格式必须象下面这样:
    SX,SY,SZ
    这里的SX,SY,SZ表示的是缩放比例。警告:缩放应该指定一个特定的缩放方向。

  • 相关阅读:
    类 7.2访问控制与封装 笔记
    第七章 类(class)7.1 笔记
    10.4.3反向迭代器Reverse_iterator笔记
    10.4再探迭代器笔记
    10.3.4参数绑定 bind
    10.3lambda表达式笔记
    第10章 10.1-10.3笔记
    关于按下ctrl+z后,之后的cin失效的问题
    构造和改变一个string的其他方法
    BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
  • 原文地址:https://www.cnblogs.com/lyggqm/p/10768664.html
Copyright © 2020-2023  润新知