• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            手動(dòng)創(chuàng)建X文件(2)

            Posted on 2008-11-30 20:07 Herbert 閱讀(503) 評(píng)論(0)  編輯 收藏 引用 所屬分類: DirectX
               上一節(jié)我們創(chuàng)建了一個(gè)立方體,接下來我們?yōu)樗砑硬馁|(zhì)信息。先來看一下材質(zhì)相關(guān)的模板的定義。
             

            模板MeshMaterialList 定義如下:

            template MeshMaterialList
            {
                < F6F23F42-7686-11CF-8F52-0040333594A3 >
                DWORD nMaterials; //材質(zhì)個(gè)數(shù)
                DWORD nFaceIndexes; //面索引個(gè)數(shù)
                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 指數(shù)
                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; //紋理坐標(biāo)個(gè)數(shù)
                array Coords2d textureCoords[nTextureCoords] ; //紋理坐標(biāo)數(shù)組
            }

             

            模板Coords2d 定義如下:

            template Coords2d
            {
                < F6F23F44-7686-11cf-8F52-0040333594A3 >
                float u;
                float v;
            }



               我們在原有模型的基礎(chǔ)上添加兩個(gè)材質(zhì)

            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 指數(shù)
            0.000000;0.000000;0.000000;; // specularColor
            0.000000;0.000000;0.000000;; // emissiveColor

            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 Cube_material
            {
            8; //8 個(gè)頂點(diǎn)
             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 個(gè)面
            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; //材質(zhì)個(gè)數(shù)
            12; //面?zhèn)€數(shù)
            0,
            0,
            0,
            0,
            0,
            0,
            1,
            1,
            1,
            1,
            1,
            1;;
            {YelloImage}
            {PurpleImage}
            }


            MeshNormals
            {
            8;  //8個(gè)法線向量
              
             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個(gè)面
            3;0,2,1;, //12個(gè)面中每個(gè)頂點(diǎn)對應(yīng)一個(gè)向量索引
            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個(gè)紋理坐標(biāo)
            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;;
            }

            }

             


            運(yùn)行效果如下:
             

             
            国产精品久久国产精麻豆99网站| 精品久久久久久中文字幕大豆网| 欧美国产成人久久精品| 久久婷婷人人澡人人| 国产精品天天影视久久综合网| 亚洲国产精品久久久久婷婷软件 | 麻豆精品久久久久久久99蜜桃| 国内精品久久国产| 国产一区二区三区久久| 中文字幕亚洲综合久久菠萝蜜| 久久水蜜桃亚洲av无码精品麻豆| 91麻精品国产91久久久久| 国内精品伊人久久久久777| 人人狠狠综合久久亚洲婷婷| 久久99久久99精品免视看动漫| 国内精品久久久久久野外| 亚洲乱码精品久久久久..| 久久久久亚洲精品中文字幕| 九九久久自然熟的香蕉图片| 精品久久久久久无码不卡| 国产亚洲成人久久| www.久久热.com| 久久婷婷五月综合97色一本一本 | 亚洲精品无码专区久久久| 国产精品久久久久久久久软件| 97久久精品人人做人人爽| 精品人妻久久久久久888| 久久亚洲精品无码aⅴ大香| 久久久久一级精品亚洲国产成人综合AV区 | 国产91久久综合| 97精品国产91久久久久久| 久久久女人与动物群交毛片| 久久伊人精品一区二区三区| 大香伊人久久精品一区二区 | 亚洲午夜精品久久久久久浪潮 | 亚洲人成无码www久久久| 亚洲国产成人精品91久久久 | 一本久久综合亚洲鲁鲁五月天| 久久精品亚洲精品国产欧美| 久久91这里精品国产2020| 日本高清无卡码一区二区久久|