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

天行健 君子當自強而不息

繪制流水線(3)

2.3.5光照(Lighting)

光照定義在世界坐標系中,但必須變換到視圖坐標系才可使用。視圖坐標系中光源給物體施加的光照大大增加了場景中物體的真實性。

2.3.6裁剪(Clipping)

我們刪除那些超出了可視體范圍的幾何圖形的過程就叫做裁剪。這會出現三種情況:

完全包含——三角形完全在可視體內,這會保持不變,并進入下一級。

完全在外——三角形完全在可視體外部,這將被刪除。

部分在內(部分在外)——三角形一部分在可視體內,一部分在可視體外,則三角形將被分成兩部分,可視體內的部分被保留,可視體之外的則被刪除。

圖2.13展示了上面三種情況:

2.3.7投影(Projection)

視圖坐標系的主要任務就是將3D場景轉化為2D圖像表示。這種從n維轉換成n-1維的過程就叫做投影。投影的方法有很多種,但是我們只對一種特殊的投影感興趣,那就是透視投影。因為透視投影可以使離照相機越遠的物體投影到屏幕上后就越小,這可以使我們把3D場景更真實的轉化為2D圖像。圖2.14展示了一個3D空間中的點是如何通過透視投影到投影窗口上去的。

投影變換的實質就是定義可視體,并將可視體內的幾何圖形投影到投影窗口上去。投影矩陣的計算太復雜了,這里我們不會給出推導過程,而是使用如下的Direct3D函數通過給出平截頭體的參數來求出投影矩陣。

 

D3DXMATRIX *D3DXMatrixPerspectiveFovLH(

       D3DXMATRIX* pOut, // 返回的投影矩陣

       FLOAT fovY, // 用弧度表示的視野角度vertical field of view angle in radians

       FLOAT Aspect, // 寬高比

       FLOAT zn, // 前裁剪面距離

       FLOAT zf // 后裁剪面距離

);

 

(fovY定義鏡頭垂直觀察范圍,以弧度為單位。對于這個參數,下面是我的理解:如果定義為D3DX_PI/2(90度角),那么就是表示以攝像機的觀察方向為平分線,上方45度角和下方45度角就是攝像機所能看到的垂直范圍了。嗯,可以想象一下自己的眼睛,如果可以把自己眼睛的fovY值設為D3DX_PI(180度角),那么我們就可以不用抬頭就看得見頭頂的東西了。如果設為2 x D3DX_PI的話。。。我先編譯一下試試(building…)。哈哈,結果啥也看不見。很難想象如果自己能同時看到所有方向的物體,那么將是一個怎樣的畫面?。?/p>

如圖2.15所示視錐的描述參數。

Aspect參數為投影平面的寬高比例值,由于最后都為轉換到屏幕上,所以這個比例一般設為屏幕分辨率的寬和高的比值。如果投影窗口是個正方形,而我們的顯示屏一般都是長方形的,這樣轉換后就會引起拉伸變形。

aspectRation = screenWidth / screenHeight

我們還是通過調用IDirect3DDevice9::SetTranform方法來進行投影變換,當然,要把第一個投影類型的參數設為D3DTS_PROJECTION。下面的例子基于一個90度視角、前裁剪面距離為1、后裁剪面距離為1000的平截頭體創建投影矩陣:

D3DXMATRIX proj;

D3DXMatrixPerspectiveFovLH(&proj, PI * 0.5f, (float)width / (float)height, 1.0, 1000.0f);

Device->SetTransform(D3DTS_PROJECTION, &proj);

 

2.3.8視口變換(Viewport Transform)

視口變換主要是轉換投影窗口到顯示屏幕上。通常一個游戲的視口就是整個顯示屏,但是當我們以窗口模式運行的時候,也有可能只占屏幕的一部分或在客戶區內。視口矩形是由它所在窗口的坐標系來描述的,如圖2.16。

 

在Direct3D中,視口矩形通過D3DVIEWPORT9結構來表示。它的定義如下:

typedef struct _D3DVIEWPORT9 {

       DWORD X;

       DWORD Y;

       DWORD Width;

       DWORD Height;

       DWORD MinZ;

       DWORD MaxZ;

} D3DVIEWPORT9;

前四個參數定義了視口矩形與其所在窗口的關系。MinZ成員指定最小深度緩沖值,MaxZ指定最大深度緩沖值。Direct3D使用的深度緩沖的范圍是0~1,所以如果不想做什么特殊效果的話,將它們分別設成相應的值就可以了。

一旦我們填充完D3DVIEWPORT9結構后,就可以如下設視口:

D3DVIEWPORT9 vp{ 0, 0, 640, 480, 0, 1 };

Device->SetViewport(&vp);

這樣,Direct3D就會自動為我們處理視口變換?,F在還是給出視口變換矩陣作為參考:

 

 

2.3.9光柵化(Rasterization)

在把三角形每個頂點轉換到屏幕上以后,我們就畫了一個2D三角形。光柵化是計算需要顯示的每個三角形中每個點顏色值(如圖2.17)。

 

光柵化過程是非常繁重的計算,它應該通過硬件圖形處理來完成。它的處理結果就是把2D圖象顯示在顯示器上。


posted on 2008-03-14 09:42 lovedday 閱讀(968) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導航

統計

常用鏈接

隨筆分類(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>
            亚洲自拍偷拍网址| 性欧美video另类hd性玩具| 欧美日韩精品一区二区在线播放 | 亚洲国产精品va| 亚洲高清视频在线| 日韩视频中文| 性久久久久久久久| 久久在精品线影院精品国产| 久久综合亚洲社区| 99精品国产福利在线观看免费| 亚洲日本视频| 欧美激情aⅴ一区二区三区| 亚洲人成久久| 在线午夜精品自拍| 久久国产欧美| 欧美激情按摩| 国产视频在线观看一区二区| 亚洲国产一区视频| 亚洲欧美制服中文字幕| 免费永久网站黄欧美| 9i看片成人免费高清| 久久久午夜精品| 欧美日韩大陆在线| 国产主播一区二区三区| 一区二区三区欧美激情| 久久视频国产精品免费视频在线| 欧美激情一区二区三区蜜桃视频| 国产精品99久久久久久有的能看| 裸体一区二区| 国产欧美亚洲一区| 亚洲天堂免费观看| 欧美激情视频一区二区三区不卡| 亚洲影院免费| 欧美久色视频| 亚洲国产日韩欧美在线动漫| 亚洲永久免费视频| 亚洲第一久久影院| 午夜亚洲性色福利视频| 欧美精彩视频一区二区三区| 国内精品一区二区| 亚洲欧美国产视频| 亚洲日韩成人| 免费久久99精品国产自| 国产亚洲精品久久久久动| 在线一区观看| 亚洲精品免费电影| 蘑菇福利视频一区播放| 国内成+人亚洲+欧美+综合在线| 亚洲午夜激情| 亚洲精品国产视频| 欧美人与性动交cc0o| 亚洲日本在线观看| 噜噜噜噜噜久久久久久91| 羞羞答答国产精品www一本| 欧美先锋影音| 亚洲午夜高清视频| 亚洲深夜福利| 国产精品久久久久久久久久尿| 亚洲伦理网站| 亚洲欧洲日产国产综合网| 欧美sm重口味系列视频在线观看| 亚洲国产欧美一区| 亚洲韩国青草视频| 欧美日韩综合不卡| 午夜日本精品| 欧美在线一二三| 在线欧美一区| 亚洲精品老司机| 国产精品二区在线观看| 亚洲欧美另类在线| 久久精品国产亚洲a| 亚洲一区二区三区精品视频| 日韩一二在线观看| 欧美日韩亚洲激情| 亚洲在线一区| 亚洲一区免费视频| 国产有码一区二区| 免费观看在线综合| 欧美精品aa| 亚洲一区二区三区免费观看| 亚洲视频综合在线| 韩国视频理论视频久久| 亚洲第一二三四五区| 欧美日韩一区精品| 久久久久九九九| 欧美国产精品人人做人人爱| 亚洲一区二区在线看| 欧美在线视频在线播放完整版免费观看 | 亚洲一区二区网站| 午夜视频一区| 亚洲国产一区二区三区高清| 亚洲欧洲日本国产| 国产精品日韩高清| 欧美刺激午夜性久久久久久久| 欧美麻豆久久久久久中文| 午夜精品一区二区三区四区| 久久精视频免费在线久久完整在线看 | 欧美资源在线观看| 久久一区二区三区四区| 亚洲丝袜av一区| 久久精品日韩欧美| 亚洲一区视频在线| 久久久99精品免费观看不卡| 夜夜嗨av一区二区三区网页| 午夜在线视频一区二区区别| 亚洲精品无人区| 新狼窝色av性久久久久久| 99re这里只有精品6| 久久久综合精品| 午夜精品偷拍| 欧美日韩天天操| 亚洲电影免费观看高清完整版在线 | 久久三级视频| 国产精品久久夜| 亚洲人成人99网站| 国产午夜精品久久| 亚洲一区二区免费| 亚洲一区国产一区| 欧美激情精品久久久久| 欧美 日韩 国产在线| 国产婷婷精品| 午夜欧美电影在线观看| 亚洲主播在线观看| 欧美激情一区二区三区不卡| 蜜臀a∨国产成人精品| 欧美一区二区三区免费在线看 | 亚洲高清影视| 国产一区二区三区免费在线观看| 亚洲美女av在线播放| 亚洲激情网站免费观看| 久久精品视频在线| 久久九九国产精品| 国产无遮挡一区二区三区毛片日本| 一区电影在线观看| 亚洲视频香蕉人妖| 欧美亚日韩国产aⅴ精品中极品| 亚洲人午夜精品免费| 亚洲精品在线视频观看| 欧美大片在线观看一区| 亚洲激情第一页| 日韩午夜中文字幕| 欧美日韩在线视频一区二区| 亚洲精选在线| 午夜精品视频在线| 国产在线日韩| 两个人的视频www国产精品| 欧美激情麻豆| 一区二区三区毛片| 国产精品久久一区主播| 香蕉成人啪国产精品视频综合网| 久久大逼视频| 在线精品国产成人综合| 欧美国产在线观看| 亚洲图片在区色| 久久精品欧美日韩| 91久久精品一区二区三区| 欧美日韩亚洲另类| 欧美一区二区三区在线视频 | 亚洲蜜桃精久久久久久久 | 最新国产拍偷乱拍精品| 日韩视频不卡| 国产精品揄拍一区二区| 亚洲欧美日产图| 久久伊伊香蕉| 日韩午夜在线| 国产日产亚洲精品| 欧美韩国日本一区| 亚洲午夜性刺激影院| 老司机一区二区三区| 9色porny自拍视频一区二区| 国产麻豆综合| 欧美精品在线看| 香蕉久久国产| 亚洲精选91| 美女日韩欧美| 亚洲免费在线视频| 亚洲黄网站黄| 国产视频精品免费播放| 欧美黑人多人双交| 性欧美1819性猛交| 亚洲免费久久| 欧美成熟视频| 久久久久高清| 一本色道久久88综合亚洲精品ⅰ| 国产日韩欧美夫妻视频在线观看| 欧美1区2区视频| 欧美一区2区视频在线观看| 亚洲精品永久免费精品| 免费日韩av电影| 欧美一区二区三区视频在线| 亚洲人体偷拍| 亚洲高清激情| 黄色精品在线看| 久久综合给合| 久久久久久久999精品视频| 亚洲免费高清| 在线视频国产日韩| 国产欧美一区二区精品仙草咪| 欧美黄网免费在线观看| 久久全国免费视频|