XNA-3D座標系統
3D的世界和2D不同,且差異算是很大的,雖然三度空間也只是比二度空間多一個z軸,但是複雜度就整個高了許多。
XNA在畫3D圖的時候,需要設定三種矩陣:世界矩陣、觀察矩陣、投影矩陣。
世界矩陣:
用來定義物體在世界的座標,就是物體在空間中的座標。
而世界矩陣是由縮放矩陣 x 旋轉矩陣 x 平移矩陣得到,且因為矩陣沒有交換律,所以順序不能對調。三矩陣可由下列函式方便取得。
縮放矩陣:
Matrix.CreateScale( float scale ) 參數: scale 放大倍率 |
旋轉矩陣:
Matrix.CreateRotationX( float radians ) 參數: radians 旋轉弧度 |
平移矩陣:
Matrix.CreateTranslation( |
觀察矩陣:
用來定義觀察者的座標和視線方向以及向上的向量。
Matrix.CreateLookAt ( |
投影矩陣:
用來定義投射到螢幕的矩陣,因為空間中的物體最終還是要顯示在平面的螢幕上。
Matrix CreatePerspectiveFieldOfView ( float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance ) 參數: fieldOfView 畫面視角 aspectRatio 畫面長寬比 nearPlaneDistance 近景(比此數值靠近的不畫) farPlaneDistance 遠景(比此數值還遠的不畫) |