D3DX 9.9 LEARNERNOTO
DirectX 9.0 3D游戲開發編程基礎
一、開發工具:vs2013 or VC++2005 Direct3D API http://msdn.microsoft.com/directx/sdk DirectX SDK
二、倆種運行程序方式:REF和硬件
三、開發環境配置:DirectX應用程序的工程類型是WIN32 Application,在vs2013中需指定DirectX頭文件和庫文件所在路徑。
四、D3DX可用于開發類型廣泛的3D應用程序。
五、重點學會使用Direct SDK 文檔 和SDK 例程 本書網站:www.moon-labs.com 相關的配套文件:www.wordware.com/files/dx9下載
第一部分、基礎知識,主要提供預備的數學知識介紹
3D空間中的向量
向量在粒子系統中,可以用來表示粒子速度和加速度,相比于其他3D圖像學應用中,向量大多表示方向,例:光線的方向,攝像頭的方向,多邊形的朝向等。
左手坐標系:z軸正方向穿進紙面
右手坐標系:z軸正方向穿出紙面
用于描述向量的坐標稱為分量(component)
4個特殊的3D向量,零向量,x,y,z軸上的單位向量(unit vector)
D3DX庫中,我們用類D3DXVECTOR3表示3D空間中的向量,向量也有其自身的代數運算。
掌握向量的求模公式,向量的規范化(變為單位向量)normalizing,可以通過將向量的每個分量都除以該向量的模實現規范化。
D3DX庫中,用函數實現向量的規范化,該函數返回指向變換結果的指針,所以該函數可以作為另一個函數的參數來使用。在大部分情況下,除非特別聲明,一個D3DX數學函數均返回一個指向結果的指針。
只有維數相同的向量才能加法和減法,在各個分量上運算。
數乘:標量可以與向量相乘,該運算可對向量進行放縮。
點積:倆向量(維數相同)點積,等于對應坐標相乘的和,或者兩向量的點積等于二者夾角的余弦再乘以兩個向量的模的乘積。如果u和v都是單位向量,則u 和 v就等于u,v夾角的余弦。D3DXVec3Dot(&v,&u);
點積結果是標量,叉積結果是向量,如果取倆向量的叉積,運算所得出的向量與這倆向量彼此正交。
叉積的運算規則:叉積不具備交換性。可用左手法則來判斷叉積的方向。
分量形式:P=U*V
Px=(UyVz - UzVy)
Py=(UzVx - UxVz)
Pz=(UxVy - UyVx)
D3DXVECTOR3 *D3DXVec3Cross()
矩陣
一個m*n矩陣是一個m行,n列的矩陣數組。
我們用行和列組成的雙下標來標識矩陣的元素,第一個下標為該元素所在行的索引,第二個下標為該元素所在列的索引。
一個矩陣僅包含單行或單列。這樣的矩陣稱為行向量或者列向量。
矩陣相等是倆個矩陣維數相同且對應元素也相同,則二者相等。
矩陣數乘是用該標量乘以矩陣的每個元素。
兩個矩陣只有維數相同時,方可進行減法或加法運算。
矩陣乘法是矩陣在3D圖形學中最重要的運算。借助矩陣乘法,我們能夠對向量實施轉換,也可將幾個變化進行組合。
為計算矩陣乘積AB,矩陣A的列數必須等于矩陣B的行數。矩陣乘法沒有交換性
若A為m*n矩陣,B為n*p矩陣,則AB乘積有意義,且等于一個m*p矩陣C,其中乘積C的第ij個元素的值等于A的第i個行向量與B的第j個列向量的點積。Cij=AiBj
單位矩陣(identity Matrix)除主對角線上元素為1外,其余元素均為0,而且是方陣(square matrix);
逆矩陣:只有方陣才有可能有逆矩陣,并非所有方陣都有逆矩陣,一個矩陣與其逆矩陣的乘積為單位陣。在“D3DX矩陣”一節中,會了解用D3DX函數來求逆矩陣的方法。在矩陣A和B軍可逆,且矩陣為維數相同的方陣下:(AB)-1 = B-1 A-1;
矩陣的轉置可通過交換矩陣的行和列來實現。
編寫Direct3D應用程序時。通常只使用4*4矩陣和1*4的行向量。
在D3Dx中表示1*4行向量,通常使用向量類D3DXVECTOR3和D3DXVECTOR4.D3DX中表示4*4矩陣,可以使用類D3DXMATRIX.
括號運算符(parenthesis operator),利用該運算符可以方便地訪問矩陣中的每個元素。
D3DX針對D3DXMATRIX類型的矩陣提供了下列很有用的函數,功能包括將該類型的矩陣轉換為單位矩陣、取轉置以及求逆。
D3DXMATRIX *D3DXMatrixIdentity(D3DXMATRIX *pout);
如果傳入D3DXMatrixInverse函數的矩陣不可逆,則返回一個NULL值。另外,在本書中,一般忽略該函數的第2個參數,每次調用時將其置為0;
?
轉載于:https://www.cnblogs.com/BINGITLIVE/p/5510309.html
總結
以上是生活随笔為你收集整理的D3DX 9.9 LEARNERNOTO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解字符串的朴素模式匹配算法
- 下一篇: pycon-python 会议