zoukankan      html  css  js  c++  java
  • 细读cow.osg

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

    //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完

    1   总结一下  

    一个根节点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.....

  • 相关阅读:
    JSON的使用总结
    pc端分页插件的使用
    简单修改选择文件样式
    H5中的本地存储
    H5中的 meta 标签及 移动页面单位
    1001. A+B Format (20)
    查看mysql的注册表路径
    win10 64位安装mysql
    [POLITICS] S Korea lawmakers vote to impeach leader
    5-17 Hashing (25分)
  • 原文地址:https://www.cnblogs.com/mumuliang/p/1873543.html
Copyright © 2011-2022 走看看