程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> .x file format 詳細分析.x 文件格式

.x file format 詳細分析.x 文件格式

編輯:C++入門知識

The picture below is a .X file opened by DirectX Mesh View. Today, we look at the X file's detail information. I strongly recommand readers search "X File Format Reference" topic in DirectX SDK  documentation.

 

 

 

 

\

 

 


The variable-length header is compulsory and must be at the beginning of the data stream. The header contains the following data.

 


Type Required Size (in bytes) Value Description
Magic Number x 4 "xof "  
Version Number x 2 "03" Major version 3
    "03" Minor version 3
Format Type x 4 "txt " Text File
    "bin " Binary file
    "tzip" MSZip compressed text file
    "bzip" MSZip compressed binary file
Float Size x "0064" 64-bit floats
x "0032" 32-bit floats

 

 

[cpp]
xof 0302txt 0032                              //Header  
Material PDX01_-_Default { 
1.000000;1.000000;1.000000;1.000000;;         //Face color  
0.000000;                                     //Power - the power is the specular exponent of the material  
0.900000;0.900000;0.900000;;                  //Material specular color  
0.000000;0.000000;0.000000;;                  //Material emissive color  
TextureFilename { 
"wood.boards.bmp"; 


Frame Box01 { 
FrameTransformMatrix {                         // Defines a local transform for a frame(Optional)  
1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,-4.720104,0.000000,3.721657,1.000000;; 

Mesh { 
8;                                             //Number of vertices.  
-19.277889;-15.037872;0.000000;,               //Array of vertices, each of type Vector  
9.837681;-15.037872;0.000000;, 
-19.277889;22.481186;0.000000;, 
9.837681;22.481186;0.000000;, 
-19.277889;-15.037872;13.356144;, 
9.837681;-15.037872;13.356144;, 
-19.277889;22.481186;13.356144;, 
9.837681;22.481186;13.356144;; 
 
12;                                            //Number of faces(triangle)  
3;0,2,3;,                                      //Array of indices  
3;3,1,0;, 
3;4,5,7;, 
3;7,6,4;, 
3;0,1,5;, 
3;5,4,0;, 
3;1,3,7;, 
3;7,5,1;, 
3;3,2,6;, 
3;6,7,3;, 
3;2,0,4;, 
3;4,6,2;; 
MeshNormals  {                                 //Optional  
6;                                             //Number of normals.  
0.000000;0.000000;-1.000000;,                  //Array of normals  
0.000000;0.000000;1.000000;, 
0.000000;-1.000000;0.000000;, 
1.000000;0.000000;0.000000;, 
0.000000;1.000000;0.000000;, 
-1.000000;0.000000;0.000000;; 
12;                                            //Number of face normals, equal face's number!  
3;0,0,0;,                                      //Array of mesh face normals  
3;0,0,0;, 
3;1,1,1;, 
3;1,1,1;, 
3;2,2,2;, 
3;2,2,2;, 
3;3,3,3;, 
3;3,3,3;, 
3;4,4,4;, 
3;4,4,4;, 
3;5,5,5;, 
3;5,5,5;; 

MeshMaterialList  {                           //Optional  
   1;                                         //The number of materials.  
   12;                                        //The number of indices. equal face's number  
   0,                                         //An arrray of DWORDs containing the face indices  
   0, 
   0, 
   0, 
   0, 
   0, 
   0, 
   0, 
   0, 
   0, 
   0, 
   0; 
{ PDX01_-_Default }                           //Reference to the material we define  

MeshTextureCoords {                          //Optional  
8;                                            //Number of texture coordinates  
0.000000;0.000000;,                          //Array of 2D texture coordinates.  
1.000000;0.000000;, 
0.000000;-1.000000;, 
1.000000;-1.000000;, 
0.000000;0.000000;, 
1.000000;0.000000;, 
0.000000;-1.000000;, 
1.000000;-1.000000;; 


xof 0302txt 0032                              //Header
Material PDX01_-_Default {
1.000000;1.000000;1.000000;1.000000;;         //Face color
0.000000;                                     //Power - the power is the specular exponent of the material
0.900000;0.900000;0.900000;;                  //Material specular color
0.000000;0.000000;0.000000;;                  //Material emissive color
TextureFilename {
"wood.boards.bmp";
}
}
Frame Box01 {
FrameTransformMatrix {                         // Defines a local transform for a frame(Optional)
1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,-4.720104,0.000000,3.721657,1.000000;;
}
Mesh {
8;                                             //Number of vertices.
-19.277889;-15.037872;0.000000;,               //Array of vertices, each of type Vector
9.837681;-15.037872;0.000000;,
-19.277889;22.481186;0.000000;,
9.837681;22.481186;0.000000;,
-19.277889;-15.037872;13.356144;,
9.837681;-15.037872;13.356144;,
-19.277889;22.481186;13.356144;,
9.837681;22.481186;13.356144;;

12;                                            //Number of faces(triangle)
3;0,2,3;,                                      //Array of indices
3;3,1,0;,
3;4,5,7;,
3;7,6,4;,
3;0,1,5;,
3;5,4,0;,
3;1,3,7;,
3;7,5,1;,
3;3,2,6;,
3;6,7,3;,
3;2,0,4;,
3;4,6,2;;
MeshNormals  {                                 //Optional
6;                                             //Number of normals.
0.000000;0.000000;-1.000000;,                  //Array of normals
0.000000;0.000000;1.000000;,
0.000000;-1.000000;0.000000;,
1.000000;0.000000;0.000000;,
0.000000;1.000000;0.000000;,
-1.000000;0.000000;0.000000;;
12;                                            //Number of face normals, equal face's number!
3;0,0,0;,                                      //Array of mesh face normals
3;0,0,0;,
3;1,1,1;,
3;1,1,1;,
3;2,2,2;,
3;2,2,2;,
3;3,3,3;,
3;3,3,3;,
3;4,4,4;,
3;4,4,4;,
3;5,5,5;,
3;5,5,5;;
}
MeshMaterialList  {                           //Optional
   1;                                         //The number of materials.
   12;                                        //The number of indices. equal face's number
   0,                                         //An arrray of DWORDs containing the face indices
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0,
   0;
{ PDX01_-_Default }                           //Reference to the material we define
}
MeshTextureCoords {                          //Optional
8;                                            //Number of texture coordinates
0.000000;0.000000;,                          //Array of 2D texture coordinates.
1.000000;0.000000;,
0.000000;-1.000000;,
1.000000;-1.000000;,
0.000000;0.000000;,
1.000000;0.000000;,
0.000000;-1.000000;,
1.000000;-1.000000;;
}
}
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved