青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

網格模型高級技術(2)

我們在cube_1.x的基礎上添加材質、法線和紋理,構成cube_2.x:

xof 0302txt 0064
Header {
1;
0;
1;
}
Material RedMaterial {                    //第一塊材料
1.000000;0.000000;0.000000;1.000000;; // R = 1.0, G = 0.0, B = 0.0
0.000000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;
	TextureFilename 
{
"Tex1.jpg"; //紋理文件名
}
}
Material GreenMaterial {                  //第二塊材料
0.000000;1.000000;0.000000;1.000000;; // R = 0.0, G = 1.0, B = 0.0
0.000000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;
	TextureFilename 
{
"Tex2.jpg"; //紋理文件名
}
}
Mesh Cube {   //網格
8; //8個頂點,以下為8個頂點的坐標
1.000000;1.000000;-1.000000;,
-1.000000;1.000000;-1.000000;,
-1.000000;1.000000;1.000000;,
1.000000;1.000000;1.000000;,
1.000000;-1.000000;-1.000000;,
-1.000000;-1.000000;-1.000000;,
-1.000000;-1.000000;1.000000;,
1.000000;-1.000000;1.000000;;
	12;            // 12個面, 以下為每個面三個頂點的索引
3;0,1,2;,
3;0,2,3;,
3;0,4,5;,
3;0,5,1;,
3;1,5,6;,
3;1,6,2;,
3;2,6,7;,
3;2,7,3;,
3;3,7,4;,
3;3,4,0;,
3;4,7,6;,
3;4,6,5;;
	//網格材質列表
MeshMaterialList {
2; //使用材質的數量:2塊材質
12; //為12個面指定材質
0, //為前6個面使用第一塊材質
0,
0,
0,
0,
0,
1, //為后面的6個面使用第二塊材質
1,
1,
1,
1,
1;;
		{RedMaterial}       //第一塊材質,引用前面定義的RedMaterial材質
{GreenMaterial} //第二塊材質,引用前面定義的GreenMaterial材質
}
	//頂點法線
MeshNormals {
8; //定義8個法線向量
0.333333;0.666667;-0.666667;,
-0.816497;0.408248;-0.408248;,
-0.333333;0.666667;0.666667;,
0.816497;0.408248;0.408248;,
0.666667;-0.666667;-0.333333;,
-0.408248;-0.408248;-0.816497;,
-0.666667;-0.666667;0.333333;,
0.408248;-0.408248;0.816497;;
		12;                   //為12個面的每個頂點指定法線
3;0,1,2;,
3;0,2,3;,
3;0,4,5;,
3;0,5,1;,
3;1,5,6;,
3;1,6,2;,
3;2,6,7;,
3;2,7,3;,
3;3,7,4;,
3;3,4,0;,
3;4,7,6;,
3;4,6,5;;
}
	//紋理坐標
MeshTextureCoords {
8; //定義8對紋理坐標
0.000000;1.000000;
1.000000;1.000000;
0.000000;1.000000;
1.000000;1.000000;
0.000000;0.000000;
1.000000;0.000000;
0.000000;0.000000;
1.000000;0.000000;;
}
}
 

效果圖如下:


 

可以看到在Mesh模板中嵌套著一個子模板MeshMaterialList,它是Mesh模板的一部分,用來將每個面與材質相關聯,其定義如下:

Used in a mesh object to specify which material applies to which faces. The nMaterials member specifies how many materials are present, and materials specify which material to apply.

template MeshMaterialList
{
< F6F23F42-7686-11CF-8F52-0040333594A3 >
DWORD nMaterials;
DWORD nFaceIndexes;
array DWORD faceIndexes[nFaceIndexes];
[Material <3D82AB4D-62DA-11CF-AB39-0020AF71E433>]
}

Where:

  • nMaterials - A DWORD. The number of materials.
  • nFaceIndexes - A DWORD. The number of indices.
  • faceIndexes[nFaceIndexes] - An arrray of DWORDs containing the face indices.

MeshMaterialList是一個受限的模板,它只能包含Material模板,其定義如下:

Defines a basic material color that can be applied to either a complete mesh or a mesh's individual faces. The power is the specular exponent of the material.

Note     The ambient color requires an alpha component.

TextureFilename is an optional data object. If this object is not present, the face is untextured.

template Material
{
< 3D82AB4D-62DA-11CF-AB39-0020AF71E433 >
ColorRGBA faceColor;
FLOAT power;
ColorRGB specularColor;
ColorRGB emissiveColor;
[...]
}

Where:

  • faceColor - Face color. A ColorRGBA template.
  • power - Material specular color exponent.
  • specularColor - Material specular color. A ColorRGB template.
  • emissiveColor - Material emissive color. A ColorRGB template.

 

Defines a color object with an alpha component. This is used for the face color in the material template definition.

template ColorRGBA
{
< 35FF44E0-6C7C-11cf-8F52-0040333594A3 >
float red;
float green;
float blue;
float alpha;
}

Defines the basic RGB color object.

template ColorRGB
{
< D3E16E81-7835-11cf-8F52-0040333594A3 >
float red;
float green;
float blue;
}

在cube_2.x中,首先定義了兩個材質RedMaterial和GreenMaterial:

Material RedMaterial {                    //第一塊材料
1.000000;0.000000;0.000000;1.000000;; // R = 1.0, G = 0.0, B = 0.0
0.000000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;
	TextureFilename 
{
"Tex1.jpg"; //紋理文件名
}
}
Material GreenMaterial {                  //第二塊材料
0.000000;1.000000;0.000000;1.000000;; // R = 0.0, G = 1.0, B = 0.0
0.000000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;
	TextureFilename 
{
"Tex2.jpg"; //紋理文件名
}
}

在模板MeshMaterialList中則給出了各個面與材質的關聯信息:

//網格材質列表
MeshMaterialList {
2; //使用材質的數量:2塊材質
12; //為12個面指定材質
0, //為前6個面使用第一塊材質
0,
0,
0,
0,
0,
1, //為后面的6個面使用第二塊材質
1,
1,
1,
1,
1;;
	{RedMaterial}       //第一塊材質,引用前面定義的RedMaterial材質
{GreenMaterial} //第二塊材質,引用前面定義的GreenMaterial材質
}

其中,{RedMaterial}和{GreenMaterial}是對上面定義的材質模板對象的引用。

在光照模型運算時需要用到法向量,法向量分為面法向量和頂點法向量。在基于逐頂點計算的光照模型中,需要使用頂點法向量。通常頂點法向量的計算過程是:先將共享該頂點的幾個面的面法向量相加并除以共享該頂點的面的個數,接著歸一化這個結果。模板MeshNormals用來指定法向量:

Defines normals for a mesh. The first array of vectors is the normal vectors themselves, and the second array is an array of indexes specifying which normals should be applied to a given face. The value of the nFaceNormals member should be equal to the number of faces in a mesh.

template MeshNormals
{
< F6F23F43-7686-11cf-8F52-0040333594A3 >
DWORD nNormals;
array Vector normals[nNormals];
DWORD nFaceNormals;
array MeshFace faceNormals[nFaceNormals];
}

Where:

  • nNormals - Number of normals.
  • array Vector normals[nNormals] - Array of normals.
  • nFaceNormals - Number of face normals.
  • array MeshFace faceNormals[nFaceNormals] - Array of mesh face normals.

在文件cube_2.x中,法向量的定義以及為面指定法向量的內容如下:

//頂點法線
MeshNormals {
8; //定義8個法線向量
0.333333;0.666667;-0.666667;,
-0.816497;0.408248;-0.408248;,
-0.333333;0.666667;0.666667;,
0.816497;0.408248;0.408248;,
0.666667;-0.666667;-0.333333;,
-0.408248;-0.408248;-0.816497;,
-0.666667;-0.666667;0.333333;,
0.408248;-0.408248;0.816497;;
	12;                   //為12個面的每個頂點指定法線
3;0,1,2;,
3;0,2,3;,
3;0,4,5;,
3;0,5,1;,
3;1,5,6;,
3;1,6,2;,
3;2,6,7;,
3;2,7,3;,
3;3,7,4;,
3;3,4,0;,
3;4,7,6;,
3;4,6,5;;
}

模板TextureFilename用于引用紋理,它通常作為Material模板對象的子對象出現,其定義如下:

Enables you to specify the file name of a texture to apply to a mesh or a face. This template should appear within a material object.

template TextureFilename 
{
< A42790E1-7810-11cf-8F52-0040333594A3 >
string filename;
}

在使用TextureFilename模板時,只需要使用字符串filename指定一個紋理文件名即可,但要將這幅紋理映射到網格模型中,還需要指定紋理坐標:

Defines a mesh's texture coordinates.

template MeshTextureCoords
{
< F6F23F40-7686-11cf-8F52-0040333594A3 >
DWORD nTextureCoords;
array Coords2d textureCoords[nTextureCoords] ;
}

Where:

  • nTextureCoords - Number of texture coordinates.
  • array Coords2d textureCoords[nTextureCoords] - Array of 2D texture coordinates.

Defines a two dimensional vector used to define a mesh's (u, v) texture coordinates.

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

在cube_2.x中,定義紋理坐標的代碼如下:

//紋理坐標
MeshTextureCoords {
8; //定義8對紋理坐標
0.000000;1.000000;
1.000000;1.000000;
0.000000;1.000000;
1.000000;1.000000;
0.000000;0.000000;
1.000000;0.000000;
0.000000;0.000000;
1.000000;0.000000;;
}

posted on 2008-05-27 14:49 lovedday 閱讀(1768) 評論(0)  編輯 收藏 引用

公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲第一网站| 欧美在线影院| 久久久精品国产一区二区三区| 亚洲免费av网站| 99国产精品一区| 亚洲网站在线播放| 欧美一区影院| 女同性一区二区三区人了人一| 久久美女性网| 亚洲欧洲精品一区二区| 最新国产乱人伦偷精品免费网站| 亚洲美女色禁图| 欧美一区二区黄色| 欧美成人午夜77777| 欧美视频在线观看免费网址| 国产欧美一区二区白浆黑人| 亚洲欧洲一区二区三区久久| 在线亚洲一区观看| 久久色在线观看| 亚洲日本欧美天堂| 欧美在线免费观看| 午夜在线观看欧美| 国产女主播一区二区三区| 激情欧美一区二区三区| 亚洲人成网站999久久久综合| 亚洲欧美在线免费观看| 久久久久国产精品www| 亚洲国产成人91精品| 亚洲午夜av在线| 嫩草影视亚洲| 国产精品免费在线| 最新亚洲一区| 久久精品国产一区二区三| 亚洲国产精品小视频| 香蕉av777xxx色综合一区| 欧美激情一区三区| 欲香欲色天天天综合和网| 亚洲一区亚洲| 亚洲国产成人一区| 久久aⅴ国产紧身牛仔裤| 欧美色精品在线视频| 最新日韩在线视频| 欧美高清在线视频| 久久久久久久久久看片| 国产精品影院在线观看| 亚洲天堂av高清| 亚洲精品日产精品乱码不卡| 美女日韩欧美| 亚洲福利视频免费观看| 久久综合给合久久狠狠狠97色69| 亚洲影视中文字幕| 国产精品三区www17con| 亚洲欧美日韩精品久久奇米色影视 | 久久综合九色综合欧美狠狠| 亚洲一品av免费观看| 欧美日韩岛国| 亚洲精选在线观看| 欧美风情在线观看| 久久综合婷婷| 亚洲大黄网站| 免费成人在线观看视频| 久久精品亚洲| 精品动漫一区| 美日韩在线观看| 久久夜色精品一区| **性色生活片久久毛片| 免费欧美网站| 美女精品视频一区| 99精品热6080yy久久| 亚洲欧洲日产国产综合网| 欧美国产一区二区三区激情无套| 亚洲精品久久7777| 亚洲精品一区在线| 欧美丝袜一区二区| 欧美一区午夜视频在线观看| 久久久www成人免费无遮挡大片| 一区二区三区精品视频在线观看| 一本久久综合| 亚洲一级网站| 免费观看一级特黄欧美大片| 激情av一区二区| 亚洲综合色丁香婷婷六月图片| 亚洲日本电影| 欧美激情免费观看| 99视频一区| 亚洲欧美偷拍卡通变态| 国产日韩欧美综合一区| 久久黄色网页| 欧美成人自拍视频| 亚洲直播在线一区| 久久精品国产一区二区电影 | 亚洲每日在线| 在线一区二区三区四区| 国产亚洲精品一区二区| 欧美高清视频| 国产老肥熟一区二区三区| 欧美黑人国产人伦爽爽爽| 国产精品久99| 麻豆精品视频| 国产精品多人| 欧美成人综合网站| 国产精品亚洲不卡a| 亚洲国产高清在线| 国产日韩亚洲欧美精品| 最新日韩欧美| 亚洲国产精品久久| 欧美一级网站| 亚洲欧美中文另类| 欧美日韩国产999| 欧美高清视频一区二区| 国产一区二区三区最好精华液| 亚洲精品黄网在线观看| 在线观看精品一区| 欧美一区二区三区久久精品| 亚洲免费影视| 欧美午夜电影在线| 亚洲美女精品一区| 亚洲国产婷婷| 久久在线91| 另类激情亚洲| 极品日韩av| 欧美一级专区免费大片| 亚洲一区二区三区中文字幕| 免费观看在线综合| 免费成人高清| 激情综合色综合久久| 新67194成人永久网站| 亚洲免费在线观看| 欧美午夜不卡在线观看免费| 日韩亚洲成人av在线| 亚洲人成在线播放网站岛国| 亚洲性线免费观看视频成熟| 欧美日韩在线第一页| 老**午夜毛片一区二区三区| 国产精品日日做人人爱| 亚洲免费电影在线| 99国产精品99久久久久久| 免费黄网站欧美| 欧美激情视频给我| 亚洲激情午夜| 欧美激情视频一区二区三区在线播放 | 国产自产精品| 欧美一区二区三区视频在线| 欧美一区二区私人影院日本| 国产精品日韩| 午夜亚洲福利| 久久中文字幕一区| 在线看片一区| 欧美va亚洲va香蕉在线| 亚洲片在线观看| 在线一区二区三区四区五区| 欧美天天综合网| 午夜精品一区二区三区四区 | 久久精品一二三区| 精品av久久707| 欧美va亚洲va香蕉在线| 亚洲美女视频| 久久精品国产v日韩v亚洲| 黑人巨大精品欧美一区二区 | 久久伊人亚洲| 亚洲乱码国产乱码精品精| 亚洲影院高清在线| 国产婷婷成人久久av免费高清| 久久精品三级| 亚洲免费电影在线| 久久精品视频在线| 亚洲黄网站黄| 国产精品一级久久久| 久久久久亚洲综合| 日韩午夜电影av| 久久伊伊香蕉| 亚洲在线日韩| 在线播放中文一区| 欧美色道久久88综合亚洲精品| 香蕉免费一区二区三区在线观看| 欧美激情第8页| 欧美在线播放视频| 亚洲精品影视在线观看| 国产毛片精品视频| 欧美人与性动交cc0o| 久久精品人人做人人爽电影蜜月| 在线视频精品一区| 欧美护士18xxxxhd| 久久精品亚洲| 午夜性色一区二区三区免费视频| 亚洲国产欧美在线人成| 国产日韩在线播放| 国产精品福利片| 欧美理论片在线观看| 久久久精品免费视频| 亚洲欧美日韩另类精品一区二区三区| 欧美高清视频在线| 久久香蕉国产线看观看av| 亚洲欧美韩国| 亚洲无线观看| 亚洲视频第一页| 夜夜爽av福利精品导航| 午夜欧美精品久久久久久久| 久久精品人人做人人爽| 亚洲制服av|