最近在看《direct9.0 3d遊戲程式設計基礎》以及淺墨大神的《windows遊戲程式設計從零開始》兩本書,希望能通過部落格來記錄一下自己的學習歷程,整理相關的知識,方便查閱。
1.對於2d,我們只需要乙個二維座標系,但是3d,就需要3d的座標系。描述3d的座標系分為左手座標系和右手座標系,二者的差別體現在z軸的方向上,左手座標系z軸正方向穿進紙面,右手反之。對於螢幕,自然是穿進螢幕了,所以我們常用的就是左手座標系。
2.向量的兩種乘法運算:
(1)點乘:u(ux, uy, uz),v(vx, vy, vz),則u點乘v = ux*vx +uy*vy + uz*vz;
(2)叉乘:u(ux, uy, uz),v(vx, vy, vz),則u叉乘v = p, p(uy*vz - uz*vy, uz*vx - ux*vz, ux*vy - uy*vz)
3.矩陣:m*n矩陣表示m行n列的矩形陣列。
4.矩陣乘法:
(1)條件: a*b矩陣,要保證a的列數 = b的行數。若a為m*n矩陣,b為n*p矩陣,則結果c矩陣為m*p矩陣。
1.d3dx數學函式一般返回乙個指向結果的指標。
2.編寫d3d程式時,我們通常只需要使用4*4的矩陣和1*4的行向量。為什麼不用3*3呢?因為3*3雖然看起來就滿足三維的要求,但是,有許多變換是做不到的。那為什麼要用1*4的行向量呢?因為要保證進行矩陣的乘法運算,4*4的矩陣必須和1*4的矩陣進行乘法運算,而不能與1*3的矩陣進行乘法運算。剩餘的乙個維度,對於座標和向量有所不同,對於座標,由於需要進行平移變換,所以將剩餘的維度置為1,而對於向量,由於平移沒有意義,所以剩餘的維度置為0.
3.對於矩陣變換,要按照比例變換,旋轉變換以及平移變換的順序依次進行變換。變換通過乘以乙個變換矩陣來達到效果。可以根據矩陣乘法,將若干變換整合起來,節約開銷。
DirectX 3D 基本框架 四
繼續擴充套件原來的d3d基本框架。這次將新增地形類庫。做出如下修改 1.增加乙個terrain頭 庫檔案。清單 file terrain.h by tianzhihen 2008.10.27,msvc 8.0 ifndef terrainh define terrainh include d3dut...
DirectX 11 學習筆記(1) D3D基礎
dx11特性 強制要求裝置實現d3d11規定的所有功能特性。dx9特性 不強制要求裝置實現d3d11規定的所有功能特性。當需要使用某一特性時,先查詢再呼叫。com component object model 元件物件模型 texture 紋理 d3d紋理只支援特定格式的資料儲存,這些格式由dxgi...
3D基本概念
用過3dmax的人都知道,乙個 場景是由很多 模型 model 組成的,而模型就是通常說的 網格 mesh 它是由 三角形面 組成,而每個三角形面又是由 個 頂點 vertex 構成。如圖 材質 materal 和紋理 texture 光有網格模型看上去就是乙個物品的輪廓,為了讓模型具有真實感,我們...