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