Unity Camera & Maya Camera FOV

Unity中的Camera的FOV和Maya中Camera的Angle of View即使設置成相同值,預覽時結果會有很大差異

原因:

Unity Camera的FOV是Vertical FOV的角度

Maya Camera的Angle of View是Horizontal FOV的角度

 

 

解決方法

先保證Maya和Unity中的Aspect Ratio一致,然後再按照長寬比換算兩者各自應該使用的FOV或者Angle of View。

 

例如按照下面的方式設置,即可實現兩邊完全一樣

Unity中的設置:

  • Field of View:45
  • AspecRatio:4/3

Maya中的Camera設置:

  • Angle of View:60
  • AspecRatio:4/3

不同Aspect Ratio的屏幕適配

我們遊戲中對不同Aspect Ratio的屏幕的適配方法是:

  • Vertical FOV維持不變
  • Horizontal FOV  = VerticalFOV * AspectRatio (此方法有誤差)

也就是說使用16:10設備的用戶在水平方向上看到的東西比使用4:3屏幕的用戶多!

製作過場動畫或者和相機關係密切的動畫時,建議在Maya中以4:3屏幕爲準,以保證沒有東西跑到畫面外

經過反覆測試發現horizontalFov和verticalFov的關係並沒有那麼簡單。

橫縱FOV與長寬比的關係如下:

tan(hFOV/2) = tan(vFOV/2) * aspect

參考:http://forum.unity3d.com/threads/how-to-calculate-horizontal-field-of-view.16114/

針對我們的需求,horizontalFov爲90°,verticalFov爲60°,那麼aspect應該是:

tan(hFOV/2) = tan(vFOV/2) * aspect

aspect = tan(hFOV/2) / tan(vFOV/2)

aspect = tan(90/2) / tan(60/2)

aspect = tan(45) / tan(30)

aspect = 1 / 0.57735 = 1.732

結論:當aspect爲1.732的時候,攝像機的horizontalFov爲90°,verticalFov爲60°

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章