天天看點

Osg-osg、osgb、osgt檔案

osg、其中osgb是osg的二進制格式;osgt格式是 如下官網解釋:

OSGT file is an OpenSceneGraph ASCII Scene Data. The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.

翻譯:OSGT檔案是OpenSceneGraph ASCII場景資料。OpenSceneGraph是一個開源的高性能3D圖形工具包,供應用程式開發人員在視覺模拟、遊戲、虛拟現實、科學可視化和模組化等領域使用。

Group { 
UniqueID Group_0      //Gourp名稱 
DataVariance STATIC   //不知道用來幹嘛,一般都是static 
cullingActive TRUE    //剔除陰影視點看不見的地方部分優化等等 
num_children 1        //子節點數 
Geode {               ////子節點是Geode節點(Geode節點是葉節點,它不會再有子節點,可以與任意多個Drawable的對象關聯)  
 DataVariance DYNAMIC        
 name "cow.osg"        //Geode名稱,應該是模型路徑吧 就是檔案名   
 cullingActive TRUE    //參與剔除   
 num_drawables 1       //可繪制元素Drawable對象的數目,1  
 Geometry {            //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                   //光澤 0到1      
            }       
            textureUnit 0 {             //紋理貼圖部分        
                GL_TEXTURE_GEN_S ON        
                GL_TEXTURE_GEN_T ON        
                GL_TEXTURE_2D ON        //打開2D的貼圖        
                Texture2D {            //2D的貼圖           
                    DataVariance STATIC          
                    file "Images/reflect.rgb" //貼圖檔案          
                    wrap_s REPEAT          
                    wrap_t REPEAT         
                    wrap_r REPEAT           
                    min_filter NEAREST_MIPMAP_LINEAR  //filter 線性MIPMAP         
                    mag_filter LINEAR        
                    internalFormatMode USE_IMAGE_DATA_FORMAT //格式模式         
                    subloadMode OFF  //分載模式關閉      
                    }         
                TexGen {      //紋理坐标生成
                    Texture coordinate generation        
                    DataVariance STATIC         
                    mode SPHERE_MAP //像鏡子一樣反射環境(此時這張紋理貼圖相當于環境貼圖)這裡包括ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal 模式等等        
                    }      
            }     
        }     
        useDisplayList TRUE     //顯示模型的清單    
        Primitives 1 //圖元     
        {       
            DrawArrayLengths TRIANGLE_STRIP 0 984  //三角圖元構成畫幾何面      
            {         
                3         
                3        
                3        
                3      
            }     
        }    
        VertexArray 7772      //頂點坐标    
        {       
            4.76334 -1.36791 3.02949      
            4.85496 -1.36297 3.09889       
            4.73514 -1.38955 3.08412      
            4.92619 0.143477 2.29847    
        }    
        NormalBinding PER_VERTEX     //法向量綁定方式,每個頂點   
        NormalArray 7772  
        {      
            0.254622 -0.918791 -0.301648     
            0.440603 -0.85537 -0.272417     
            0.244499 -0.920072 -0.306084      
            0.506864 0.840135 -0.193035    
        }    
        ColorBinding OVERALL         //設定顔色的綁定方式    
        ColorArray Vec4Array 1      //顔色的值    
        {        0.8 0.8 0.8 1      }    
        TexCoordArray 0 Vec2Array 7772  //紋理UV坐标      {
            0 0       
            0 0      
            0 0      
            0 0   
        } 
    } 
  }
}