细读cow.osg

转自:http://www.cnblogs.com/mumuliang/archive/2010/06/03/1873543.html

对,就是那只著名的奶牛。

//Group节点,可有子节点。
Group {

UniqueID Group_0         //Gourp名称
DataVariance STATIC   //不知道用来干嘛,一般都是static
cullingActive TRUE      //参与culling?
num_children 1               //子节点数

Geode {   //子节点是Geode节点(Geode节点是叶节点,它不会再有子节点,可以与任意多个Drawable的对象关联)

DataVariance DYNAMIC
    name "cow.osg"              //Geode名称,应该是模型路径吧
    cullingActive TRUE       //参与culling
    num_drawables 1           //可绘制元素Drawable对象的数目,1

Geometry {   //Drawable :Gemetry,是可绘制对象类型之一。用指定顶点数据,绘制几何体。

DataVariance DYNAMIC

StateSet {   //渲染状态。分为渲染属性和渲染模式两部分。是个状态值,直到子节点重新设置前,它的值一直沿节点树向下有效。
        DataVariance STATIC
        rendering_hint OPAQUE_BIN    //和渲染有关的
        renderBinMode INHERIT            //和渲染有关的
        GL_CULL_FACE OFF                 //和裁剪有关的
        GL_LIGHTING ON                       //和裁剪有关的

Material {   //材质
          DataVariance STATIC
          ColorMode OFF                    //光的啥啥
          ambientColor 0.5 0.5 0.5 1     //环境光
          diffuseColor 1 1 1 1               //漫反射
          specularColor 1 1 1 1             //镜面反射
          emissionColor 0 0 0 1            //自发光
          shininess 1                              //????????
         } ////材质结束

textureUnit 0 { //纹理单元,1,可以多个。序数依次。

GL_TEXTURE_GEN_S ON   //啥啥啥???
          GL_TEXTURE_GEN_T ON   //啥啥啥???
          GL_TEXTURE_2D ON           //啥啥啥???

Texture2D {    //2D的贴图
            DataVariance STATIC
            file "Images/reflect.rgb" //贴图文件
            wrap_s REPEAT             //repeat嘛,很容易懂
            wrap_t REPEAT
            wrap_r REPEAT
            min_filter NEAREST_MIPMAP_LINEAR //什么filter
            mag_filter LINEAR                                        //另一个filter
            internalFormatMode USE_IMAGE_DATA_FORMAT //??
            subloadMode OFF                                                               //??
          }////Texture结束

TexGen {   //贴图坐标?
            DataVariance STATIC
            mode SPHERE_MAP   //啥啥球面?——"环境反射贴图,选球面就可以了"?
          }////贴图坐标结束

}////纹理单元1结束

}////Geometry的stateset结束

useDisplayList TRUE    //显示模型的列表????

Primitives 1   //貌似是Gemotry的图元信息
      {
        DrawArrayLengths TRIANGLE_STRIP 0 984    //画几何面?985个?
        {
          3
          // 略一堆面?的数值。。。3是指3边形么?@v@
        }
      } ////primitives完

VertexArray 7772   //顶点坐标
      {
        // 略一堆表示顶点的数值。
        0.701499 2.00244e-05 0.71267
        0.501693 4.00296e-05 0.865046
        0.465203 0.372921 0.802818
      }

NormalBinding PER_VERTEX     //法向量绑定方式,每个顶点
      NormalArray 7772                          //法向量数组
      {
        0.254622 -0.918791 -0.301648
        0.440603 -0.85537 -0.272417
        0.244499 -0.920072 -0.306084
      }

ColorBinding OVERALL      //Geometry的颜色绑定,啥意思我也不知。

ColorArray Vec4Array 1     //颜色的值
      {
        0.8 0.8 0.8 1
      }

TexCoordArray 0 Vec2Array 7772 //应该是修饰顶点的啥东西=.=
      {
        0 0
        // 略一堆。。。。。。数值。
      }

}////Geometry完

}////Geode完

}////Group完

总结一下  

一个根节点Group,名字叫Group0,它的属性和参数包括:
UniqueID
DataVariance
cullingActive
num_children
1个Geode

Geode,名字叫"cow.osg",它的属性参数包括

DataVariance
    name "cow.osg"
    cullingActive
    num_drawables
    1个Geometry

这1个Geometry的属性参数包括

DataVariance
      StateSet
      useDisplayList
      Primitives
      VertexArray
      NormalBinding 
      NormalArray 
      ColorBinding
      ColorArray
      TexCoordArray

其中StateSet又有

DataVariance STATIC
        rendering_hint
        renderBinMode
        GL_CULL_FACE
        GL_LIGHTING
        Material
         1个textureUnit

Material和textureUnit又有各自的blablabla.....

细读cow.osg的更多相关文章

  1. [OSG][转]osg格式文件

    转自:http://blog.csdn.net/timothyfly/article/details/7826139 osg格式文件中如何处理多个节点共享一个子节点 下面一段程序中,共有三个Group ...

  2. osg矩阵变换节点-----平移旋转缩放

    osg矩阵变换节点-----平移旋转缩放 转自:http://www.cnblogs.com/ylwn817/articles/1973396.html 平移旋转缩放这个三个是osg矩阵操作中,最常见 ...

  3. 推荐一篇好文:OSG OSGearth vs2010编译

    链接:http://weibo.com/p/2304189447a8480102v2c2 此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU 按照步骤操作完 ...

  4. OSG配置问题

    BUILD_OSG_ARAPPERS: 这一项要选,不然后面编译自己的测试程序的时候,会报无法打开文件"osgIntrospectiond.lib"错误. Could not fi ...

  5. 【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建

    虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半 ...

  6. osg osgDB::Options noTexturesInIVEFile ForceReadingImage dds_flip

    osgDB::writeNodeFile(node, path, new osgDB::Options("noTexturesInIVEFile")); noTexturesInI ...

  7. osg 纹理访问器

    #include<osgViewer/Viewer> #include<osg/Node>#include<osg/Geode>#include<osg/Gr ...

  8. OSG+VS2010+win7环境搭建---OsgEarth编译

    OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...

  9. OSG第一个Demo

    环境:Vs2010 OpenSceneGraph-3.0.1-VS10.0.30319-x86-debug-12741 OpenSceneGraph-3.0.1-VS10.0.30319-x86-re ...

随机推荐

  1. 多线程之GCD

    什么是GCD Grand Central Dispatch 是Apple开发的一种多核编程技术.主要用于优化应用程序以支持多核处理器以及其他多对称处理系统TA会自动管理线程的生命周期(创建线程.调度任 ...

  2. winform 多线程编程

    参考资料: WinForm中新开一个线程操作 窗体上的控件(跨线程操作控件) c# 使用定时器Timer

  3. CSS大杂烩(1)

    box-sizing 有4种方式 border-box 用来减去padding内边框和边框 前提是设置好固定宽高 content-box 在宽和高之外内边距和边框 其实基本上和原来一样 inherit ...

  4. tyvj1102 单词的划分

    描述 有一个很长的由小写字母组成字符串.为了便于对这个字符串进行分析,需要将它划分成若干个部分,每个部分称为一个单词.出于减少分析量的目的,我们希望划分出的单词数越少越好.你就是来完成这一划分工作的. ...

  5. MVC验证session是否过期,在每个action执行之前验证

            protected override void OnActionExecuting(ActionExecutingContext filterContext)         {   ...

  6. Nginx/Apache发大招

    导读 网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率. 下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行 ...

  7. Factorization Machine因子分解机

    隐因子分解机Factorization Machine[http://www. w2bc. com/article/113916] https://my.oschina.net/keyven/blog ...

  8. InnoDB全文索引:N-gram Parser【转】

    本文来自:http://mysqlserverteam.com/innodb%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%EF%BC%9An-gram-parser/ In ...

  9. 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库

    获取Sqlite 1.可以用NuGet程序包来获取,它也会自动下载EF6 2.在Sqlite官网上下载对应的版本:http://system.data.sqlite.org/index.html/do ...

  10. Java基础之反射和动态代理

    1,反射是依赖于Class对象,然后根据Class对象,去操作该类的资源的.Class对象是发射的基石! 问题1:人这类事物用什么表示?汽车这类事物用什么表示>计算机文件用什么表示?有如此多的事 ...