如果我们能时时刻刻都在学习,从观察、聆听、注视和行动中学习,那么你会发现,学习是不断进展,永无过去 | 学习技术不是发财之道 | 学习技术,因为崇尚科学与真理
模板MeshMaterialList 定义如下:
template MeshMaterialList{ < F6F23F42-7686-11CF-8F52-0040333594A3 > DWORD nMaterials; //材质个数 DWORD nFaceIndexes; //面索引个数 array DWORD faceIndexes[nFaceIndexes]; //面索引列表 [Material <3D82AB4D-62DA-11CF-AB39-0020AF71E433>] //约定只能包含Material模板}
模板Material 定义如下:
template Material{ < 3D82AB4D-62DA-11CF-AB39-0020AF71E433 > ColorRGBA faceColor; //面的颜色 FLOAT power; // specular color 指数 ColorRGB specularColor; ColorRGB emissiveColor; [...]}
模板ColorRGBA 定义如下:
template ColorRGBA{ < 35FF44E0-6C7C-11cf-8F52-0040333594A3 > float red; float green; float blue; float alpha;}
模板ColorRGB 定义如下:
template ColorRGB
{
< D3E16E81-7835-11cf-8F52-0040333594A3 >
float red;
float green;
float blue;
}
模板TextureFilename 定义如下:
template TextureFilename { < A42790E1-7810-11cf-8F52-0040333594A3 > string filename; //纹理图片文件名}
模板MeshTextureCoords 定义如下:
template MeshTextureCoords{ < F6F23F40-7686-11cf-8F52-0040333594A3 > DWORD nTextureCoords; //纹理坐标个数 array Coords2d textureCoords[nTextureCoords] ; //纹理坐标数组}
模板Coords2d 定义如下:
template Coords2d{ < F6F23F44-7686-11cf-8F52-0040333594A3 > float u; float v;} 我们在原有模型的基础上添加两个材质Material YelloImage {1.000000;1.000000; 0.000000;1.000000;; 0.000000; 0.000000;0.000000;0.000000;;0.000000;0.000000;0.000000;; TextureFilename{ "Herbert.png";}}
Material PurpleImage{1.000000; 0.000000; 1.000000; 1.000000;; //颜色: R G B A 0.000000;0.000000; 0.000000; 0.000000;;0.000000; 0.000000; 0.000000;;
TextureFilename{ "Candy.png";}}在 Mesh 里面嵌入 MeshMaterialList、MeshNormals、MeshTextureCoords。完整代码如下:
cube_material.xxof 0302txt 0064
Header{1;0;1;}
Material YelloImage {1.000000;1.000000; 0.000000;1.000000;; //颜色: R G B A 0.000000; // specular color 指数0.000000;0.000000;0.000000;; // specularColor0.000000;0.000000;0.000000;; // emissiveColor
TextureFilename{ "Herbert.png";}}
TextureFilename{ "Candy.png";}}
Mesh Cube_material{8; //8 个顶点 2.0;-2.0; 2.0;, 2.0;-2.0;-2.0;,-2.0;-2.0;-2.0;,-2.0;-2.0; 2.0;, 2.0; 2.0; 2.0;, 2.0; 2.0;-2.0;,-2.0; 2.0;-2.0;,-2.0; 2.0; 2.0;;
12; // 12 个面3;0,2,1;,3;0,3,2;,3;4,5,6;,3;4,6,7;,3;0,1,5;,3;0,5,4;,3;3,7,6;,3;3,6,2;,3;1,2,6;,3;1,6,5;,3;0,4,7;,3;0,7,3;;
MeshMaterialList{2; //材质个数12; //面个数0, 0, 0, 0, 0, 0,1, 1, 1, 1, 1, 1;;{YelloImage}{PurpleImage}}
MeshNormals{8; //8个法线向量 1.0;-1.0; 1.0;, 1.0;-1.0;-1.0;,-1.0;-1.0;-1.0;,-1.0;-1.0; 1.0;, 1.0; 1.0; 1.0;, 1.0; 1.0;-1.0;,-1.0; 1.0;-1.0;,-1.0; 1.0; 1.0;;
12; //12个面3;0,2,1;, //12个面中每个顶点对应一个向量索引3;0,3,2;,3;4,5,6;,3;4,6,7;,3;0,1,5;,3;0,5,4;,3;3,7,6;,3;3,6,2;,3;1,2,6;,3;1,6,5;,3;0,4,7;,3;0,7,3;;
MeshTextureCoords{8; //8个纹理坐标0.0; 0.0;0.0; 1.0;0.0; 0.0;0.0; 1.0;
1.0; 0.0;1.0; 1.0;1.0; 0.0;1.0; 1.0;;}