Преглед изворни кода

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 {