cleanup perspective parameters

This commit is contained in:
Isaac0-dev 2025-06-09 21:33:01 +10:00
parent 01eb5c34c0
commit 68b700ccfb

View file

@ -247,8 +247,9 @@ void patch_mtx_interpolated(f32 delta) {
} }
u16 perspNorm; u16 perspNorm;
f32 fovInterpolated = delta_interpolate_f32(sPerspectiveNode->prevFov, sPerspectiveNode->fov, delta); f32 fovInterpolated = delta_interpolate_f32(sPerspectiveNode->prevFov, sPerspectiveNode->fov, delta);
f32 near = MIN(sPerspectiveNode->near, gProjectionMaxNearValue); f32 near = get_first_person_enabled() ? 1.f : replace_value_if_not_zero(MIN(sPerspectiveNode->near, gProjectionMaxNearValue), gOverrideNear);
guPerspective(sPerspectiveMtx, &perspNorm, fovInterpolated, sPerspectiveAspect, get_first_person_enabled() ? 1 : replace_value_if_not_zero(near, gOverrideNear), replace_value_if_not_zero(sPerspectiveNode->far, gOverrideFar), 1.0f); f32 far = replace_value_if_not_zero(sPerspectiveNode->far, gOverrideFar);
guPerspective(sPerspectiveMtx, &perspNorm, fovInterpolated, sPerspectiveAspect, near, far, 1.0f);
gSPMatrix(sPerspectivePos, VIRTUAL_TO_PHYSICAL(sPerspectiveNode), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH); gSPMatrix(sPerspectivePos, VIRTUAL_TO_PHYSICAL(sPerspectiveNode), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
} }
@ -498,8 +499,9 @@ static void geo_process_perspective(struct GraphNodePerspective *node) {
gProjectionVanillaNearValue = node->near; gProjectionVanillaNearValue = node->near;
gProjectionVanillaFarValue = node->far; gProjectionVanillaFarValue = node->far;
f32 near = MIN(node->near, gProjectionMaxNearValue); f32 near = get_first_person_enabled() ? 1.f : replace_value_if_not_zero(MIN(node->near, gProjectionMaxNearValue), gOverrideNear);
guPerspective(mtx, &perspNorm, node->prevFov, aspect, get_first_person_enabled() ? 1 : replace_value_if_not_zero(near, gOverrideNear), replace_value_if_not_zero(node->far, gOverrideFar), 1.0f); f32 far = replace_value_if_not_zero(node->far, gOverrideFar);
guPerspective(mtx, &perspNorm, node->prevFov, aspect, near, far, 1.0f);
sPerspectiveNode = node; sPerspectiveNode = node;
sPerspectiveMtx = mtx; sPerspectiveMtx = mtx;