摘要: 在圖13.4中,計(jì)算三角形網(wǎng)格上的頂點(diǎn),我們只是在開始產(chǎn)生頂點(diǎn)的地方,一行一行的生成頂點(diǎn)數(shù)據(jù),直到結(jié)束為止。單元格的頂點(diǎn)與頂點(diǎn)之間有一塊空白區(qū)域,這會(huì)讓我們?nèi)〉脁、z坐標(biāo),但y坐標(biāo)是什么呢?得到y(tǒng)坐標(biāo)很容易,當(dāng)讀取高度圖數(shù)據(jù)結(jié)構(gòu)時(shí)會(huì)找到對(duì)應(yīng)的入口。
注意:這個(gè)操作使用一個(gè)巨大的頂點(diǎn)緩存去保存所有地形上的所有頂點(diǎn)。這可能會(huì)引起硬件局限性的問題。例如:3D設(shè)備都預(yù)設(shè)了最大圖元數(shù)和最大頂點(diǎn)索引值。檢查D3DCAPS9結(jié)構(gòu)的MaxPrimitiveCount和MaxVertexlndex成員來獲得你的設(shè)備的限定值。
閱讀全文
摘要: 實(shí)際上,地形網(wǎng)格不比三角形網(wǎng)格復(fù)雜,圖13.1.(a)所示,網(wǎng)絡(luò)的每個(gè)頂點(diǎn)指定了高度,格子模型用這種方式顯示從山脈到河流的平滑過渡。圖13.1 (b),模擬自然地形。當(dāng)然,我們可以用漂亮的紋理表現(xiàn)沙石地,綠色的山丘。圖13.1.(c)雪山效果。
閱讀全文
摘要: 掌握游戲編程, 學(xué)習(xí)幾本好書必不可少. 這些書可以大致分為兩類. 一類是原理性的書籍, 另一類是應(yīng)用性的書籍. 原理性的書籍一般變化不大, 這些年來奉為經(jīng)典的一直都是那幾本. 這類書最好擁有一兩本, 不求多, 務(wù)求懂. 應(yīng)用類的書這幾年來大量涌現(xiàn), 參差不齊. 這些書沒有必要擁有. 但應(yīng)隨時(shí)了解最新書籍, 有好的不妨翻一下. 需要的時(shí)候知道到哪里去找資料就行了.
閱讀全文
摘要: 我們使用D3DXMatrixLookAtLH函數(shù)來計(jì)算視圖空間變換矩陣。這個(gè)函數(shù)對(duì)于在固定位置布置和對(duì)準(zhǔn)攝像機(jī)是非常好用的,不過它的用戶接口對(duì)于要響應(yīng)用戶輸入來實(shí)現(xiàn)攝像機(jī)移動(dòng)就不那么好用了。這就激發(fā)我們用我們自己的方法來解決,這里我們展示了怎樣實(shí)現(xiàn)一個(gè)Camera類,它使我們能夠比 D3DXMatrixLookAtLH函數(shù)更好地操作攝像機(jī),并且可以用來作為飛行模擬攝像機(jī)和第一人稱視角攝像機(jī)。
閱讀全文
摘要: 該實(shí)例程序是創(chuàng)建和渲染一個(gè)如圖12.8所示的場(chǎng)景。你能夠通過鍵盤輸入在場(chǎng)景中自由地飛行。下面是相應(yīng)鍵盤設(shè)置:
W/S—向前/向后移動(dòng)
A/D—向左/向右平移
R/F—向上/向下飛行
Up/Down方向鍵—傾斜
Left/Right方向鍵—偏航
N/M—滾轉(zhuǎn)
閱讀全文
摘要: 為了實(shí)現(xiàn)我們的攝像機(jī)旋轉(zhuǎn)方法,我們需要能夠繞著任意軸旋轉(zhuǎn),D3DX庫提供下面的函數(shù)來解決這個(gè)問題:
閱讀全文
摘要: 我們使用D3DXMatrixLookAtLH函數(shù)來計(jì)算視圖空間變換矩陣。這個(gè)函數(shù)對(duì)于在固定位置布置和對(duì)準(zhǔn)攝像機(jī)是非常好用的,不過它的用戶接口對(duì)于要響應(yīng)用戶輸入來實(shí)現(xiàn)攝像機(jī)移動(dòng)就不那么好用了。這就激發(fā)我們用我們自己的方法來解決,這里我們展示了怎樣實(shí)現(xiàn)一個(gè)Camera類,它使我們能夠比D3DXMatrixLookAtLH函數(shù)更好地操作攝像機(jī),并且可以用來作為飛行模擬攝像機(jī)和第一人稱視角攝像機(jī)。
閱讀全文
摘要: ID3DXMesh接口的主要功能繼承自ID3DXBaseMesh父接口,了解這些是很重要的,其它一些mesh接口如ID3DXPMesh也是繼承自ID3DXBaseMesh。
閱讀全文
摘要: 有時(shí)我們需要計(jì)算mesh的外接體(邊界范圍),常用的有兩種類型:立方體和球。也有使用其它方法的,如圓柱體,橢球體,菱形體,膠囊形。圖11.4演示了對(duì)同一個(gè)mesh分別使用立方體和球體類型。
閱讀全文
摘要: 一個(gè)X文件不包含頂點(diǎn)法線數(shù)據(jù),這是很有可能的。假如是這種情況,那么手動(dòng)計(jì)算頂點(diǎn)法線以便我們能夠使用燈光這是很有必要的。現(xiàn)在知道了ID3DXMesh接口和它的父接口ID3DXBaseMesh,我們能夠使用下面的函數(shù)來產(chǎn)生任何mesh的頂點(diǎn)法線:
閱讀全文