Sfoglia il codice sorgente

Merge pull request #16402 from Calinou/fix-camera-gizmo

Draw the Camera gizmo more accurately
Rémi Verschelde 7 anni fa
parent
commit
448076edb6
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  1. 3 2
      editor/spatial_editor_gizmos.cpp

+ 3 - 2
editor/spatial_editor_gizmos.cpp

@@ -1121,7 +1121,7 @@ void CameraSpatialGizmo::set_handle(int p_idx, Camera *p_camera, const Point2 &p
 	if (camera->get_projection() == Camera::PROJECTION_PERSPECTIVE) {
 	if (camera->get_projection() == Camera::PROJECTION_PERSPECTIVE) {
 		Transform gt = camera->get_global_transform();
 		Transform gt = camera->get_global_transform();
 		float a = _find_closest_angle_to_half_pi_arc(s[0], s[1], 1.0, gt);
 		float a = _find_closest_angle_to_half_pi_arc(s[0], s[1], 1.0, gt);
-		camera->set("fov", a);
+		camera->set("fov", a * 2.0);
 	} else {
 	} else {
 
 
 		Vector3 ra, rb;
 		Vector3 ra, rb;
@@ -1178,7 +1178,8 @@ void CameraSpatialGizmo::redraw() {
 
 
 		case Camera::PROJECTION_PERSPECTIVE: {
 		case Camera::PROJECTION_PERSPECTIVE: {
 
 
-			float fov = camera->get_fov();
+			// The real FOV is halved for accurate representation
+			float fov = camera->get_fov() / 2.0;
 
 
 			Vector3 side = Vector3(Math::sin(Math::deg2rad(fov)), 0, -Math::cos(Math::deg2rad(fov)));
 			Vector3 side = Vector3(Math::sin(Math::deg2rad(fov)), 0, -Math::cos(Math::deg2rad(fov)));
 			Vector3 nside = side;
 			Vector3 nside = side;