zoukankan      html  css  js  c++  java
  • [原][osg]Geometry详解

            //geometry成员变量
            PrimitiveSetList                _primitives;
            osg::ref_ptr<Array>             _vertexArray;    //顶点
            osg::ref_ptr<Array>             _normalArray;    //法线
            osg::ref_ptr<Array>             _colorArray;  //
            osg::ref_ptr<Array>             _secondaryColorArray;  //
            osg::ref_ptr<Array>             _fogCoordArray;  //
            ArrayList                       _texCoordList;  //纹理UV
            ArrayList                       _vertexAttribList;  //
    
            bool                            _containsDeprecatedData;    //

    osgt文件中保存的格式:

    osg::Geometry {
        UniqueID 2
        DataVariance STATIC
        StateSet TRUE {
            osg::StateSet {
                UniqueID 3
                DataVariance STATIC
                AttributeList 1 {
                    osg::Material {
                        UniqueID 4
                        Ambient TRUE Front 1 1 1 1 Back 1 1 1 1
                        Diffuse TRUE Front 1 1 1 1 Back 1 1 1 1
                        Specular TRUE Front 0 0 0 1 Back 0 0 0 1
                        Emission TRUE Front 0 0 0 1 Back 0 0 0 1
                        Shininess TRUE Front 0 Back 0
                    }
                    Value OFF
                }
                TextureModeList 1 {
                    Data 1 {
                        GL_TEXTURE_2D ON
                    }
                }
                TextureAttributeList 1 {
                    Data 1 {
                        osg::Texture2D {
                            UniqueID 5
                            DataVariance STATIC
                            WRAP_S CLAMP
                            WRAP_T CLAMP
                            WRAP_R CLAMP
                            MIN_FILTER LINEAR
                            MAG_FILTER LINEAR
                            UnRefImageDataAfterApply TRUE
                            Swizzle RGBA
                            Image TRUE {
                                ClassName osg::Image
                                UniqueID 6
                                FileName "Tile_1_L23_000001001000_0.dds"
                                WriteHint 2 2
                                DataVariance STATIC
                            }
                            TextureWidth 1024
                            TextureHeight 1024
                        }
                        Value OFF
                    }
                }
            }
        }
        PrimitiveSetList 1 {
            osg::DrawElementsUInt {
                UniqueID 7
                Mode TRIANGLES
                vector 30450 {
                    ........
                }
            }
        }
        VertexArray TRUE {
            osg::Vec3Array {
                UniqueID 8
                Binding BIND_PER_VERTEX
                vector 6681 {
                    ........
                }
            }
        }
        TexCoordArrayList 1 {
            osg::Vec2Array {
                UniqueID 9
                Binding BIND_PER_VERTEX
                vector 6681 {
                    ........
                }
            }
        }
    }
    View Code

     大致分析一下:

    一个geometry包含:

      一个stateset

      一个primitive列表

      一个顶点数组

      一个纹理数组列表

    stateset包含:attribute数组,纹理数组

    primitive包含:绘制的图元信息:(绘制格式,顶点索引)

    顶点数组包含:三维顶点位置信息

    纹理数组包含:二维顶点UV信息

  • 相关阅读:
    Symmetric Order
    Red and Black
    Sticks(递归经典)
    Pascal Library
    cantor的数表
    OJ 调试技巧:VS2010 中 通过设置编译参数定义宏,无需修改源文件重定向标准输入输出
    strcmp
    最短周期串
    字母重排
    codeblocks 单步调试
  • 原文地址:https://www.cnblogs.com/lyggqm/p/9139999.html
Copyright © 2011-2022 走看看