1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-06 19:41:11 +00:00

Fix Camera3D gizmo representation to accurately reflect FOV

Updated gizmo drawing to keep depth proportional to width or height based on whether FOV is horizontal or vertical.
This commit is contained in:
aaronp64
2025-01-21 12:19:53 -05:00
parent f2cc3f1275
commit 7e4d635c2f

View File

@@ -180,7 +180,13 @@ void Camera3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
const float hsize = Math::sin(Math::deg_to_rad(fov));
const float depth = -Math::cos(Math::deg_to_rad(fov));
Vector3 side = Vector3(hsize * size_factor.x, 0, depth);
Vector3 side;
if (camera->get_keep_aspect_mode() == Camera3D::KEEP_WIDTH) {
side = Vector3(hsize * size_factor.x, 0, depth * size_factor.x);
} else {
side = Vector3(hsize * size_factor.x, 0, depth * size_factor.y);
}
Vector3 nside = Vector3(-side.x, side.y, side.z);
Vector3 up = Vector3(0, hsize * size_factor.y, 0);