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

posts - 16,  comments - 81,  trackbacks - 0

課程概述

如果您已經通過前兩課教程進展至,您現在可以開始了寫3D程序。 然而,3D編程不是像土匪斗惡霸那么簡單。它是嚴格的數學,你必須了解三維數學概念,才能寫好3D程序。 不要擔心沒什么復雜的。 我保證您會在數學上花費比學C + +更多的時間。

這一課是理論課。 我們將在下一課中實踐我們的理論。 在這一課中我們將介紹坐標系統它們如何適用于Direct3D以及創造一個3D場景。

三維坐標系

如果沒有基本的3D數學的理解,三維編程是不可能的。 而且我不是指大學數學都做一遍,我們理解三維坐標的概念,它們是如何工作,以及可能用到的和各種東西。

當然,在你了解3D坐標系統之前,您需要理解笛卡爾坐標。

直角坐標系

笛卡爾坐標系統會使你更好的認識二維坐標系統。 換句話說,它是一個平面上確定一個點的位置的系統

一個點是指沿軸的準確位置。 如果我們想知道有多遠的東西走了,我們通常給一個確切的數字,如“范跑跑跑了12米。” 12米,是沿著一個軸的距離。 我們說,0是這個的起點,作為范跑跑,他的位置越來越遠沿著這條軸線。 這是一個一維的坐標系。

 
圖片3.1 - 一維坐標系

當我們看這情景,從側面圖片中,我們可以看到,作為范跑跑,他繼續朝著屏幕右側跑啊跑,他和那個'0'點的距離越來越遠。 這個'0'的由來,因為范跑跑從這里開始跑(那間教室)。 在在向左的方向上,他的距離是一個負值。

但是,如果他時轉90度,不同的方向走會怎樣? 我們考慮一下實際情況,當他向右跑了12米,沖出了教室,這時他來到了走廊,再往前就要跳下樓了,于是他只好左轉向著樓抵口跑。

 
圖片3.2 - 直角坐標系

現在增加了一個軸,垂直軸我們稱其為Y軸。 首先在水平軸X軸,沿此軸范跑跑跑了12米,然后他又沿著Y軸的方向跑起來。

當然,這種新的軸,水平軸一樣,也有一個起源。 他是范跑跑在X軸上跑路的終點因為他開始沿著Y軸跑了。 請注意,在Y軸原點也給出了0值,并隨范跑跑在Y軸上的跑路Y軸愈來愈長。 

所以,現在我們有兩個軸(X軸和Y軸),每個有其起點。 嗯,這就是笛卡爾形式的直角坐標系。 現在,我們可以找到任何上的點。 我們可以他離各軸原點的距離確定他的精確位置,所以我們可以說他是在(x,y)或(12,4),12是他在X軸上跑的距離,4是他在Y軸上跑的距離。這兩個數字稱為坐標,一個點離坐標原點((),0)有多遠。

三維坐標系

其實,三維坐標系,只不過是我們剛剛討論的情況的拓展。 假如我們把直角坐標系,并添加了第三軸(Z軸)上運行垂直于X和Y軸,我們將有三維坐標。 這里說明了這一點。


圖片3.3 - 三維坐標系

笛卡爾坐標一樣,三維坐標既可以是正值也可以是負值,取決于點處在改軸的哪個方向。 然而直角坐標不一樣的是,三維坐標是三個數字,例如:(的x,y,z)或(12,4,15)。 這表明在范跑跑老師在十五米的高空(6樓。 它也可以寫成(12,4,-15)。 也許這意味著他被埋在了煤窯。

三角幾何

現在讓我們討論三維坐標如何應用到游戲和游戲編程。 如果三維點坐標系統中的一個點代表一個在空間中的,那么我們可以通過一組這樣的點最終生成一個三維模型。 當然,這么多點的設置將在內存中占用的空間很大,于是一種更方便,更快捷的方式就出現了,那就是設置使用三角形。

任何跟數學相關的領域三角形是一個非常有用的形狀它們可以用于測量圓,他們可以用來加強建筑物,它們可以被用來創建3D圖像。 究其原因,我們將要使用三角形是因為三角形可以組成幾乎任何形狀,比如下圖的正方體和球就是由一個個三角形構成



圖片3.4 - 從三角形制作出來的模型

由于三角形在創建三維模型方面的各種優越性,Direct3D被設計為完全圍繞三角形并通過三角形組成各種形狀。為了建立一個三角形,我們需要使用一種叫做頂點集的東西

頂點集是由頂點組成的。一個頂點定義為一個在三維空間中的確切的點。 它包括三個值x,y和z。 在Direct3D中,我們還有這一點的各種屬性。 因此,我們擴的定義是指“三維空間中的精確點屬性和位置”。

三角形是由三個順時針地在您的程序中定義頂點。 當編碼完成后,這三個頂點形成一個平坦的可以自由旋轉,添加質感,定位和修改表面。



圖片3.5 - 通過頂點集創三角形

在圖像顯示的三角形3.5三個頂點

X = 0,Y = 5,Z = 1
X= 5,Ÿ = -5,Z = 1
X = 5,Ÿ = -5,Z = 1

你會發現,上述所有頂點的Z都等于-1。 這是因為我們不是在談論一個3D對象,而是在談論一個三角形,這是一個二維物體。 我們當然可以改變這個Z值,但這并不會產生什么實質的影響。

為了創建一個3D對象,我們將需要組合多個三角形。 在上面的圖3.4你可以看到如何用三角形組合出其他形狀。 比如說這在個3-4里,立方體就是由兩個簡單的三角形組成。 這個立方體的每個面都是這樣組成的。

然而,定義三維坐標游戲中的每個三角形多次不僅僅是愚蠢,這簡直就是愚蠢!。  這里還有沒有必要為涉及(你會看到我在下一課的意思)。

而不是定義每一個游戲中的每一個三角形的角落,你需要做的就是創建一個頂點,包含每一個頂點的坐標和信息,以及他們進去的順序

基元

基元(primitives,又稱為圖元或者原語) ,是3D環境中的一個單一的元素,可以是一個三角形,一條線,一個點,或其他隨便什么。 以下是基元可以被合并以創建三維對象的方法列表

1.  點列表 Point Lists
2.  線列表 Line Lists
3.  線帶 Line Strips
4.  三角形列表 Triangle Lists
5.  三角形帶Triangle Strips
6.  三角扇形 Triangle Fans 

1. 點列表 
一個點列是一組為在屏幕上顯示的頂點的列表。 它們可用于渲染3D星空,創虛線,顯示在小地圖上的位置。 圖片3.6說明了點列是如何顯示在屏幕上。


圖片3.6 - 一個點列(6元)

2. 線列表

線列表是一頂點的列表,其中奇數的頂點和下一個頂點會連成線段。 這些可用于各種效果,包括三維網格,暴雨,航點線,等等。 圖片3.7說明了線列如何在屏幕上示(這是和以前相同的一組頂點)。


圖片3.7 - A線一覽(3基元)

3. 線帶

線帶是類似于線列表,不同之處在于它所有的頂點(不分奇數還是偶數)都和下一個頂點用線段連起來。 這對創建線框模型非常有用,如線框地形,草片,以及其他不是基于模型的對象。 這對于調試程序也是非常有用的。 圖片3.8說明了如何線帶是在屏幕上顯示。


圖片3.8 - A線地帶(5基元)

4.三角形列表

一個三角形列把每三個頂點組一個單一的獨立的三角形頂點列表。 這可以在諸如力,爆炸效果,以及把對象拼湊在一起,圖3.9說明了三角形列表如何在屏幕上顯示。


圖片3.9 - A線列表(2基元)

5.三角形帶

一個三角形地帶是一個頂創建一系列互相連接的三角形的頂點列表,。 這是三維圖形處理最常用的方法。 這些大多是用于創建你的游戲的3D模型。 圖片3.10三角說明了是如何顯示在屏幕上。請注意,前三個頂點創建一個三角形,然后下個頂點和它的前兩個頂點構成一個三角形。


圖像3.10 - 一個三角地帶(4圖元)

6。 三角扇形

三角扇形類似于三角形帶,不同的是所有三角形共用一個頂點。 圖3.11:


圖像3.11 - 三角形扇(4圖元)

一個基元的問題

繪制基元的時候有一個小問題出現了,那就是你的三角形只有一面要顯示,但是系統畫了兩面。 沒錯它的確可以顯示兩面,但通常一個模型是完全封閉的,你看不到它的內部。 如果模型是完全封閉的,每個三角形只有一面需要繪制。 畢竟,繪制兩面要多花費一倍的時間。 下面你會看到這個繪制兩面和一面的區別

一個三角形基元只有當其頂點是順時針順序給出時才能繪制。 如果您翻轉它周圍,它成為逆時針,因此不會顯示。


圖像3.12 - 基元只有順時針時可見

有一個簡單的方法(雖然當你進入較大游戲時這會很繁瑣,),那就是兩面都繪制,令人原始順時針和其他反時針方向。


圖像3.13 - 兩面都繪制時兩種方式都可見

顏色

色彩是3D編程中一個相當簡單的部分。 然而,即使你彩色光譜和光物理學非常熟悉,這只是讓你更容易地知道Direct3D不完全遵循這個宇宙的規律。 那樣只能是圖形硬件和CPU的噩夢。太多了,所以我們只給圖形這樣的矩陣,并創建我們自己的規則以便夠對它進行處理。

光,當然是粒子的波,使您可以看到身邊各種對象之間的區。 Direct3D運用圖形硬件進行各種數學算法虛擬出這一點。 然后,圖像就會顯示在屏幕上。 在這一節我們將介紹如何Direct3D 虛擬我們在自然看到的光。

減法色 VS加法色

在您教育的早些時期,你可以學到的原色是紅色,藍色和黃色。 這不是真正的情況。 顏色實際上是洋紅,青色和黃色。 以及為什么沒用的技術細節? 要理解這一點,你必須了解減法色加法色的概念。

這兩種顏色之間的區別在于是否顏色是指光的顏色或一個物體的顏色。 減色是一個對象的顏色,并有原色洋紅,青色和黃色。 加色是光的顏色,有紅,綠,藍三原。

在光束,越多顏色添加進來就越接近白色。 所有的顏色加在一起就成了白色,因此它被稱為加色。


圖像3.14 - 加法色顏色越多越

上面你可以看到三原光疊加起來就成了白色。 不過,如果你仔細看,你還會看到當你把兩種原光疊加起來你會得到一個減法色的原色(洋紅,青色或者黃色)。 如果我們仔細看看這些減法色,我們將看到這是為什么。

減法色基本上是和加法色相反的。 它們不是一個表面反射的光疊加構成。 例如,一個紅色物體,被白色的光照亮反映紅光是因為它吸收綠色和藍色光。 如果你看上面的圖3.14,你會看到綠色和藍色的結合-----青色,所以青色從白光中減去,結果就顯示紅色。


圖3.15 - 減法色減到最后就成了黑色

在圖形編程,您將始終使用(紅,綠,藍)三元光的添加色,因為顯示器是自發。 而親手建立一個3D引擎會有助于你理解是什么使物體的顏色看起來這樣或者那樣。

順便說一下,這就是為什么你會發現屏幕上紅色,綠色和藍色而打印出來就成了洋紅,青色和黃色,

如果你想深入地研究顏色,下面是一個網站色彩和光物理學有比較徹底的研究。 如果你想到了未來DirectX 10的次世代游戲,我會認真地建議你學好顏色。 這里還有更多呢意想不到的東西,這使得在一個大的游戲引擎很大的改觀

總之,請猛擊這個鏈接: http://www.byronc.com/art_color.shtml

Alpha通道

Alpha通道在紅綠藍三原光之外一個額外的通道,透明通道。 當你將透明通道引入你的顏色設置,圖形顯示半透明,讓您通過物體看到其背后的其他物體。 這在游戲中會是一個很有用的功能比如說美女的紗衣(我邪惡了),以及其他許多有用的東西。 我敢肯定你一定會用到它。

設置32位色彩

Direct3D的色彩一個32位變量的組成,它存儲所有的信息。 這包括(簡稱RGB)和Alpha的值。 這些每一個被稱為通道 ,每個通道占用8位,如下圖


圖像3.16 - 顏色bit布局

以下是定義上述的顏色代碼:

DWORD Color_A = 0xff00ff00;
DWORD Color_B 
= 0x88ff00cc;

還有兩種方法創建這些顏色,我們需要插入每個通道。

DWORD Color_A = D3DCOLOR_XRGB(0,2550);
DWORD Color_B 
= D3DCOLOR_ARGB(136,255,0,204);

函數D3DCOLOR_ARGB()返回一個包含紅綠藍以及透明通道的信息的DWORD。 如果你不想使用透明,那么你可以使用D3DCOLOR_XRGB(),它會用255填充Alpha通道的值。

如果你想看到這樣的一個例子,請從第1課和2課中找出清除屏幕使用D3DCOLOR_XRGB()函數的例子。

光與色

我不打算關于光這的每一點都講到。 我留一些放在以后的課。 現在,我只是想介紹下基本,因為在添加光線進你的程序之前你必須對它有部分的了解

自然光,是一個非常復雜的數學說法。 當陽光普照,幾乎一切都是由它點,即使它沒有照到太多我們能看見的東西。 這是因為光會向周圍地區進行數千次反射,無論是陽光普照或陰天,這就是漫反射。 為了進一步增加色差,由于陽光穿越的空間,有一部分是反映灰塵粒子,這樣的漫反射是無法計算了。 即使電腦可以計算出這一切,它不能實時運行。

Direct3D使用的系統致力于模擬真實環境光。 要做到這一點,它光分解成三個類型----漫射光 ,環境光 鏡面反射三者結合在一起使得結果會接近于實際光。 

漫射光

漫射光的間接照在物體上的光。 如下圖這個球就是只用漫射光照明。


圖3.17 - 漫反射

稍后,您將了解光源。 這個球是來自左一個點光源照亮。 球離光源越遠,得到的光照就越少。

環境光

環境光被認為是無處不在的光。 不同漫射光的是,它沒有來源,如果單獨使用出現一個圈(因為所有的部件都被照)。 這個球和一個完全一樣,但這次添加了環境光照在黑暗部分


圖像3.18 - 漫和環境照明

鏡面光

這有時也被稱為鏡面高亮,因為它突出反映了一個反光的顏色對象。 這個球極受到漫射光和環境光照明,具有高光使它看起來更加真實。


圖像3.19 - 漫射,照明光和鏡面光

綜述

現在,你應該已經了解三維的基本概念,以及它是如何應用到游戲編程。 現在讓我們實踐這一切的理論。 在下一課中,你將建立一個基本的三角形。

下一課:畫一個三角形

英文原文:http://www.directxtutorial.com/tutorial9/b-direct3dbasics/dx9B3.aspx 

Translate By 王大寶(OneDouble.net)


鑒于中英文混排看著累,從這集開始,不再采用中英文對照排版,想看英文原版的朋友請移步至原帖,謝謝
posted on 2010-12-27 20:02 叫我老王吧 閱讀(2769) 評論(5)  編輯 收藏 引用 所屬分類: DierectX

FeedBack:
# re: [翻譯]Direct3D Tutrial-03 3D概念[未登錄]
2010-12-28 16:52 | Jcily
不錯,頂了  回復  更多評論
  
# re: [翻譯]Direct3D Tutrial-03 3D概念
2010-12-29 22:25 | lgz
支持了  回復  更多評論
  
# re: [翻譯]Direct3D Tutrial-03 3D概念
2010-12-30 21:00 | 叫我老王吧
@Jcily
@lgz
謝謝支持  回復  更多評論
  
# re: [翻譯]Direct3D Tutrial-03 3D概念
2011-02-10 18:01 | Tedlist
樓主加油,你翻譯的那個網站。是個收費的。再往后看就要收錢了。郁悶!  回復  更多評論
  
# re: [翻譯]Direct3D Tutrial-03 3D概念
2011-02-18 22:36 | 叫我老王吧
@Tedlist
是是是,樓主我過完年回來繼續翻譯啦  回復  更多評論
  
<2011年2月>
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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最新网址| 美腿丝袜亚洲色图| 久久久久久亚洲精品中文字幕| 欧美在线观看天堂一区二区三区 | 巨乳诱惑日韩免费av| 美女久久一区| 亚洲国产欧美在线| 99精品免费视频| 国产视频久久久久| 国产模特精品视频久久久久 | 亚洲欧洲在线视频| 中文欧美日韩| 欧美大片在线观看一区| 欧美激情视频在线播放| 性亚洲最疯狂xxxx高清| 久久久精品动漫| 国产精品成人v| 老司机成人在线视频| 亚洲午夜一级| 91久久久久久| 日韩视频在线免费观看| 亚洲在线观看视频| 牛牛国产精品| 亚洲香蕉网站| 亚洲人午夜精品| 欧美成人精品高清在线播放| 亚洲免费影视| 久久综合国产精品| 久久精选视频| 亚洲精品日本| 久久九九久精品国产免费直播| 欧美—级在线免费片| 免费看黄裸体一级大秀欧美| 亚洲男人的天堂在线aⅴ视频| 久久亚洲欧洲| 久久久免费精品| 久久国产成人| 欧美一区二区在线免费观看| 久久综合网络一区二区| 国产精品亚洲激情| 夜夜嗨网站十八久久| 亚洲日韩视频| 久久国产综合精品| 亚洲视频一区二区在线观看 | 久久综合给合久久狠狠色| 亚洲欧美在线高清| 妖精视频成人观看www| 久久久噜噜噜久久中文字免| 亚洲剧情一区二区| 欧美gay视频| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一区免费在线观看| 亚洲经典视频在线观看| 久久久久久网址| 久久久噜噜噜久久中文字幕色伊伊 | 国产欧美丝祙| 极品中文字幕一区| 在线观看成人av电影| 在线观看国产成人av片| 91久久精品国产91性色| 久久久免费精品视频| 亚洲欧美综合另类中字| 国产精品伦子伦免费视频| 亚洲午夜一区二区三区| 欧美在线视频日韩| 葵司免费一区二区三区四区五区| 麻豆久久精品| 久久久久久久久综合| 在线欧美小视频| 亚洲一区免费网站| 亚洲视频第一页| 国产欧美69| 99国产精品99久久久久久| 一本久久综合亚洲鲁鲁五月天| 欧美大学生性色视频| 亚洲另类一区二区| 欧美日韩蜜桃| 亚洲第一二三四五区| 麻豆成人综合网| 久久中文在线| 亚洲精品日韩在线观看| 亚洲免费激情| 国产日本欧美视频| 久久综合久久美利坚合众国| 99综合在线| 久久国产精品久久久久久| 欧美韩国在线| 亚洲一区二三| 久久精品九九| 夜夜夜久久久| 午夜在线观看免费一区| 欧美精品麻豆| 亚洲专区一区| 久久久国产成人精品| 亚洲伦理一区| 亚洲永久精品大片| 欧美日韩亚洲三区| 午夜视频久久久| 久久综合精品国产一区二区三区| 亚洲精品免费电影| 久久av一区二区三区亚洲| 欧美国产免费| 欧美视频导航| 免费在线一区二区| 久久精品一区二区国产| 国产精品视频yy9299一区| 99国产精品久久久久久久久久| 夜夜嗨av一区二区三区| 激情亚洲网站| 久久永久免费| 欧美香蕉大胸在线视频观看| 中国av一区| 久久亚洲精品一区| 亚洲电影在线| 亚洲综合国产| 国产午夜亚洲精品理论片色戒| 亚洲无限乱码一二三四麻| 亚洲国产精品视频一区| 久久婷婷国产综合精品青草| 一本大道久久a久久精二百| 亚洲人成毛片在线播放| 国产一区二区成人| 亚洲视频大全| 亚洲一级电影| 欧美日韩一区二区三区在线| 欧美aⅴ99久久黑人专区| 免费成人av在线| 久久深夜福利免费观看| 国产精品毛片大码女人| 91久久夜色精品国产网站| 欧美人体xx| 中日韩男男gay无套| 欧美不卡视频| 亚洲高清视频一区二区| 欧美精品一区二区在线播放| 老色鬼精品视频在线观看播放| 久久免费精品视频| 欧美一区二视频| 久久阴道视频| 亚洲靠逼com| 宅男精品导航| 亚洲欧美激情四射在线日| 亚洲欧美日韩精品久久久久| 亚洲小视频在线观看| 午夜在线播放视频欧美| 亚洲国产精品久久久久| 久久米奇亚洲| 亚洲第一综合天堂另类专| 亚洲黄色三级| 欧美另类女人| 久久久亚洲一区| 尤物在线精品| 欧美久久久久久蜜桃| 99xxxx成人网| 欧美亚洲一区二区三区| 国产一区999| 美女诱惑一区| 一本色道久久| 久久久国产成人精品| 欧美激情精品久久久久久大尺度 | 午夜日本精品| 激情久久久久久久| 亚洲天堂黄色| 亚洲第一二三四五区| 欧美~级网站不卡| 亚洲精品综合久久中文字幕| 国产亚洲成精品久久| 亚洲精品看片| 在线观看一区视频| 欧美日本国产一区| 亚洲女优在线| 亚洲黄色成人| 在线视频国产日韩| 香蕉久久国产| 欧美成人官网二区| 亚洲一区二区成人在线观看| 国产情人节一区| 免费在线成人av| 中文亚洲欧美| 亚洲婷婷综合久久一本伊一区| 国产精品美女诱惑| 99精品99| 另类尿喷潮videofree| 中文日韩欧美| 欧美日韩一区二区视频在线 | 男男成人高潮片免费网站| 亚洲一区日韩| 最新日韩在线视频| 99re这里只有精品6| 国产一区二区福利| 欧美色综合网| 在线一区二区三区四区五区| 久久综合中文色婷婷| 国语自产精品视频在线看一大j8 | 欧美日韩另类字幕中文| 久久久久在线| 性欧美xxxx视频在线观看| 亚洲免费精彩视频| 欧美国产欧美综合 |