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

天行健 君子當(dāng)自強(qiáng)而不息

繪制流水線(1)

這次主題是渲染管線。它是用來創(chuàng)建為3D世界進(jìn)行幾何描述的2D圖形并設(shè)定一個虛擬照相機(jī)確定這個世界中哪一部分將被透視投影到屏幕上。

\

2.1表現(xiàn)模型

一個場景是多個物體或模型的集合。一個物體可以用三角形網(wǎng)格(triangle mesh)來近似表示,如圖2.2所示。由三角形網(wǎng)格建立一個物體,我們稱之為建模。3D世界中最基本的圖元就是三角形,但是Direct3D也支持點圖元和線圖元但我們都不常用到。

 

 

一個多邊形的兩邊相交的點叫做頂點。為了描述一個三角形,我們通常指定三個點的位置來對應(yīng)三角形的三個頂點(如圖2.3),這樣我們就能夠很明確的表示出這個三角形了。

 

2.1.1 頂點格式

我們以前定義的點在數(shù)學(xué)上來說是正確的,但是當(dāng)我們在Direct3D環(huán)境中使用它的時候就會覺得很不完善。這是因為在Direct3D中的頂點包含了許多附加的屬性,而不再單純的只有空間位置的信息了。例如:一個頂點可以有顏色和法線向量屬性。Direct3D讓我們可以靈活的構(gòu)造自己的頂點格式。換句話說,我們可以自己定義頂點的成員。

為了創(chuàng)建一個自定義的頂點結(jié)構(gòu),我們首先要創(chuàng)建一個包含能存放我們選擇的頂點數(shù)據(jù)的結(jié)構(gòu)。例如,下面我們舉出兩種不同頂點數(shù)據(jù)類型的例子,一種包含了位置和顏色信息,第二種則包含了位置,法線向量,紋理坐標(biāo)信息。

 

struct ColorVertex

{

       float _x, _y, _z; // 位置

       DWORD _color; // 顏色

};

 

struct NormalTexVertex

{

       float _x, _y, _z; // 位置

       float _nx, _ny, _nz; // 法線向量

       float _u, _v; // 紋理坐標(biāo)

};

一旦我們有了完整的頂點格式,我們就要使用靈活頂點格式(FVF)的組合標(biāo)志來描述它。例如第一個頂點結(jié)構(gòu),我們要使用如下的頂點格式:

#define FVF_COLOR (D3DFVF_XYZ | D3DFVF_DIFFUSE)

上面的頂點結(jié)構(gòu)表明它包含位置和顏色屬性。

 

而第二種結(jié)構(gòu)則要使用:

#define FVF_NORMAL_TEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)

上面的頂點結(jié)構(gòu)表明它包含了位置,法線向量,紋理坐標(biāo)的屬性(這些常量是D3D內(nèi)置的)。

 

有一點要注意,你的標(biāo)志的順序必須要和你的頂點結(jié)構(gòu)的順序一一對應(yīng)。如果想知道所有的D3DFVF標(biāo)志,請查閱SDK文檔。

 

2.1.2 三角形

三角形是構(gòu)建3D物體的基本圖形。為了構(gòu)造物體,我們創(chuàng)建了三角形列表(triangle list)來描述物體的形狀和輪廓。三角形列包含了我們將要畫的每一個三角形的數(shù)據(jù)信息。例如為了構(gòu)造一個矩形,我們把它分成兩個三角形,如圖2.4所示,最后指定每個三角形的頂點。

 

 

Vertex rect[6] = {v0, v1, v2, // 三角形0

                            v0, v2, v3}; // 三角形1

注意:指定三角形頂點的順序是很重要的,將會按一定順序環(huán)繞排列。

 

2.1.3 索引

3D物體中的三角形經(jīng)常會有許多共用頂點。如圖2.4所表示的矩形。雖然現(xiàn)在僅有兩個點被重復(fù)使用,但是當(dāng)要表現(xiàn)一個更精細(xì)更復(fù)雜的模型的時候,重復(fù)的頂點數(shù)將會變得很大。例如圖2.5所示的立方體,僅有八個頂點,但是當(dāng)用三角形列表示它的時候,所有的點都被重復(fù)使用。

 

 

為了解決這個問題,我們引入索引(indices)這個概念。它的工作方式是:我們創(chuàng)建一個頂點列表和一個索引列表(index list)。頂點列表包含所有不重復(fù)的頂點,索引列中則用頂點列中定義的值來表示每一個三角形的構(gòu)造方式。回到那個矩形的示例上來,它的頂點列表的構(gòu)造方式如下:

Vertex vertexList[4] = {v0, v1, v2, v3};

 

索引列表則定義頂點列中的頂點是如何構(gòu)造這兩個三角形的:

WORD indexList[6] = {0, 1, 2, //三角形0

                            0, 2, 3}; //三角形1

也就是說,用頂點列表中的0(vertexList[0])、1(vertexList[1])和2(vertexList[2])頂點構(gòu)成三角形0;用頂點列表中的0(vertexList[0])、2(vertexList[2])和3(vertexList[3])頂點構(gòu)成三角形1。

 

2.2虛擬照相機(jī)

照相機(jī)確定3D世界中的哪部分是可見的,因而需要將哪部分轉(zhuǎn)換為2D圖形。在3D世界中照相機(jī)被放置和定向,并且定義其可視體,圖2.6展示了我們的照相機(jī)模型。

可視體是由可視角度和前裁剪面(Near Plane)與后裁剪面(Far Plane)定義的一個平截頭體。之所以要選擇平截頭體構(gòu)造可視體,是因為我們的顯示器都是矩形的。在可視體中不能被看見的物體都會被刪除,刪除這種數(shù)據(jù)的過程就叫做“裁剪”。

投影窗口(Projection Window)是可視體內(nèi)的3D幾何圖形投影生成的用來顯示3D場景的2D圖像的2D區(qū)域。重要的是要知道,我們使用min=(-1,-1)和max=(1,1)來定義投影窗口的大小。

為了簡化繪制,我們使前裁剪面與投影窗口在同一平面上。并且,注意Direct3D中定義的投影平面(即投影窗口所在的平面)是Z = 1的平面。


posted on 2008-03-13 19:18 lovedday 閱讀(1185) 評論(1)  編輯 收藏 引用

評論

# re: 繪制流水線(1)[未登錄] 2009-07-21 12:30

請問,可視體為什么要有兩個裁剪面  回復(fù)  更多評論   


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導(dǎo)航

統(tǒng)計

常用鏈接

隨筆分類(178)

3D游戲編程相關(guān)鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成va人片在线观看| 极品少妇一区二区三区| 一区二区三区精品视频| 免费不卡视频| 欧美黄色一区| 欧美激情成人在线视频| 亚洲高清久久久| 欧美激情一区二区| 亚洲精品偷拍| 亚洲男人av电影| 亚洲精品免费观看| 一级成人国产| 美女免费视频一区| 国产精品久久夜| 黄色一区二区在线| 亚洲影音一区| 欧美成人高清视频| 一本色道综合亚洲| 久久综合电影一区| 国产一区二区三区久久| 日韩一级在线观看| 欧美一区二区三区男人的天堂| 女生裸体视频一区二区三区| 一本色道久久88精品综合| 你懂的一区二区| 韩国成人精品a∨在线观看| 一二三区精品| 亚洲毛片视频| 欧美日韩国产精品一区| 亚洲国产老妈| 免费观看在线综合色| 久久伊人一区二区| 亚洲观看高清完整版在线观看| 欧美专区在线播放| 久久不射中文字幕| 国内精品99| 欧美v日韩v国产v| 麻豆精品精华液| 91久久精品国产91久久| 亚洲国产高清一区| 欧美激情第二页| 欧美一级片在线播放| 亚洲女女女同性video| 在线看片一区| 9i看片成人免费高清| 一区二区日韩精品| 国产伦一区二区三区色一情| 免费在线播放第一区高清av| 欧美三区视频| 麻豆精品视频在线| 欧美日本一区二区三区| 久久久久久久一区二区| 欧美xxx成人| 久久久www成人免费无遮挡大片| 老司机午夜精品视频在线观看| 亚洲三级免费| 欧美一区二区三区视频在线观看| 亚洲欧洲美洲综合色网| 欧美在线短视频| 亚洲一区二区三区激情| 欧美激情精品久久久久久| 麻豆精品视频在线| 国产一区二区你懂的| 亚洲尤物在线视频观看| 日韩视频在线一区二区| 美女图片一区二区| 欧美成人免费va影院高清| 国产亚洲欧美在线| 欧美一区二区三区在线视频| 亚洲私人影院在线观看| 欧美日韩一区二区三区四区在线观看| 亚洲高清免费视频| 中日韩午夜理伦电影免费| 欧美日韩国产a| 中日韩男男gay无套| 久久国产精品亚洲77777| 国产日本欧美在线观看| 欧美在线一区二区| 亚洲国产va精品久久久不卡综合| 日韩视频欧美视频| 性视频1819p久久| 永久555www成人免费| 亚洲国产综合视频在线观看 | 亚洲福利视频免费观看| 亚洲日本va午夜在线电影| 欧美日精品一区视频| 一本色道久久综合精品竹菊| 久久黄色网页| 亚洲福利免费| 国产精品自在在线| 欧美成人激情视频| 亚洲欧美综合一区| 亚洲理论在线| 欧美福利视频| 久久国产精品99国产精| 99在线视频精品| 亚洲精品乱码久久久久久蜜桃91| 国产精品美女诱惑| 国产精品jvid在线观看蜜臀| 欧美成人自拍视频| 久久综合免费视频影院| 久久精品久久99精品久久| 亚洲欧美日韩一区二区在线| 在线视频一区二区| 一区二区日韩| 亚洲一区观看| 欧美一区二区精美| 久久高清免费观看| 久久久精品日韩欧美| 久久亚洲国产成人| 欧美成人情趣视频| 国产精品成人一区| 国产精品视频一二| 国产亚洲视频在线| 亚洲国产一区二区精品专区| 亚洲精品综合| 欧美一级久久久| 欧美国产精品va在线观看| 亚洲高清视频一区| 亚洲欧美中文在线视频| 巨胸喷奶水www久久久免费动漫| 麻豆精品在线观看| 美女久久网站| 夜夜精品视频| 久久久精品国产免费观看同学| 欧美电影在线观看完整版| 国产精品视频一二| 日韩视频欧美视频| 久久视频在线免费观看| 亚洲欧洲日韩女同| 久久国产免费看| 国产精品国产三级国产普通话蜜臀| 国产一区二区中文字幕免费看| 亚洲区免费影片| 久久午夜精品一区二区| 一本色道久久综合亚洲精品不| 久久精品123| 国产一区二区三区的电影 | 一区二区欧美在线| 久久综合激情| 欧美一区二区免费| 欧美日韩一区二区免费视频| 亚洲黄色毛片| 女同一区二区| 欧美91精品| 亚洲国产精品免费| 久久在线视频在线| 久久精品九九| 亚洲精品一二三区| 亚洲激情小视频| 欧美日韩国产三级| av成人激情| 一区二区日韩免费看| 欧美午夜精品久久久久久浪潮| 亚洲午夜av电影| 中文在线不卡视频| 国内精品视频在线播放| 免费观看一级特黄欧美大片| 欧美1区3d| 在线亚洲一区观看| 欧美在线免费| 亚洲乱码一区二区| 亚洲在线中文字幕| 亚洲欧美日韩精品久久亚洲区 | 国产一区二区你懂的| 久久久综合激的五月天| 老色鬼久久亚洲一区二区| 夜夜嗨av色综合久久久综合网| 亚洲乱码国产乱码精品精98午夜| 国产精品亚洲精品| 免费人成精品欧美精品| 国产精品美女诱惑| 欧美福利电影网| 国产精品久在线观看| 亚洲精品免费看| 亚洲国产黄色| 久久亚洲精品视频| 久久久久国产一区二区三区四区| 欧美日韩福利视频| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩视频在线第一区| 欧美激情亚洲视频| 激情五月***国产精品| 欧美亚洲网站| 久久精品99国产精品酒店日本| 欧美日韩在线三级| 99精品视频免费| 一区二区三区国产精华| 欧美精品电影| 亚洲免费观看高清在线观看| 亚洲激情一区二区| 欧美国产精品中文字幕| 狂野欧美激情性xxxx| 亚洲激情专区| 欧美人在线视频| 亚洲自拍16p| 欧美阿v一级看视频| 亚洲精品影视| 韩日在线一区| 欧美激情无毛|