浏览代码

Fix: fix incorrect math for calculating the horizontal FOV of a perspective camera in GLTF2 import #4435

shimaowo 2 年之前
父节点
当前提交
39cbef1e21
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      code/AssetLib/glTF2/glTF2Importer.cpp

+ 1 - 1
code/AssetLib/glTF2/glTF2Importer.cpp

@@ -853,7 +853,7 @@ void glTF2Importer::ImportCameras(glTF2::Asset &r) {
 
         if (cam.type == Camera::Perspective) {
             aicam->mAspect = cam.cameraProperties.perspective.aspectRatio;
-            aicam->mHorizontalFOV = cam.cameraProperties.perspective.yfov * ((aicam->mAspect == 0.f) ? 1.f : aicam->mAspect);
+            aicam->mHorizontalFOV = 2.0f * std::atan(std::tan(cam.cameraProperties.perspective.yfov * 0.5f) * (aicam->mAspect == 0.f) ? 1.f : aicam->mAspect);
             aicam->mClipPlaneFar = cam.cameraProperties.perspective.zfar;
             aicam->mClipPlaneNear = cam.cameraProperties.perspective.znear;
         } else {