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信息

  • 相关阅读:
    MySQL视图——学习笔记及实验
    小学生四则运算自动刷题库优化升级
    软件工程小项目——小学生四则运算自动刷题库
    笔记--运算符、表达式和语句
    笔记--基本数据类型与数组
    笔记--java入门
    原因: java.lang.ClassNotFoundException: Hello
    使用gopm代替go get 解决go包卡慢的问题
    调用微信截图功能c# 截图带扩展名
    如何用golang搜索抓取淘宝商品
  • 原文地址:https://www.cnblogs.com/lyggqm/p/9139999.html
Copyright © 2011-2022 走看看