XNA-投影轉換
這裡主要是將3D世界的物件正確的顯示在2D的螢幕上,也就是將攝影機裡看到的3D物件,投影顯示在螢幕上指定的視覺區域裡面。
XNA為我們提供了一個方便使用的投影轉換的函數,在Matrix底下的一個方法CreatePerspectiveFieldOfView,底下就來了解一下它的用法。
Matrix.createPerspectiveFieldOfView(FieldOfView, aspectRatio, nearPlaneDistance, farPlaneDistance)
- fieldOfView => 視野,是指眼睛能看到視野的最寬角度
- aspectRatio => 是指螢幕上顯示3D畫面的寬度除以高度的比例值
- nearPlaneDistanca => 是指攝影機最近可以看到的距離
- farPlaneDistance => 是指攝影機最遠可以看到的距離
如以下圖所示:
之後就要得到遊戲中最後的矩陣,此時需要將三個矩陣(前面所介紹兩大矩陣:3D矩陣運算以及攝影機-觀測點)world矩陣和View矩陣以及此篇介紹的projection矩陣相乘起來,此三個矩陣相乘不能夠互相交換位置,而三個矩陣相乘才是我們遊戲所得到最終的矩陣。
Matrix WorldViewProjection = World * View * Projection;