XNA-投影轉換

XNA-投影轉換

    這裡主要是將3D世界的物件正確的顯示在2D的螢幕上,也就是將攝影機裡看到的3D物件,投影顯示在螢幕上指定的視覺區域裡面。

    XNA為我們提供了一個方便使用的投影轉換的函數,在Matrix底下的一個方法CreatePerspectiveFieldOfView,底下就來了解一下它的用法。

Matrix.createPerspectiveFieldOfView(FieldOfView, aspectRatio, nearPlaneDistance, farPlaneDistance)
  • fieldOfView => 視野,是指眼睛能看到視野的最寬角度
  • aspectRatio => 是指螢幕上顯示3D畫面的寬度除以高度的比例值
  • nearPlaneDistanca => 是指攝影機最近可以看到的距離
  • farPlaneDistance => 是指攝影機最遠可以看到的距離

    如以下圖所示:

1

    之後就要得到遊戲中最後的矩陣,此時需要將三個矩陣(前面所介紹兩大矩陣:3D矩陣運算以及攝影機-觀測點)world矩陣和View矩陣以及此篇介紹的projection矩陣相乘起來,此三個矩陣相乘不能夠互相交換位置,而三個矩陣相乘才是我們遊戲所得到最終的矩陣。

Matrix WorldViewProjection = World * View * Projection;