1
0
Fork 0

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
1 changed files with 7 additions and 1 deletions

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);