Improve camera position calculation using resolved yaw and pitch

This commit is contained in:
2026-04-25 16:29:27 +02:00
parent d9642d00f6
commit 17768b0fdf

View File

@@ -552,12 +552,17 @@ export class ThirdPersonNavigationController implements NavigationController {
y: this.smoothedFeetY + eyeHeight * CAMERA_PIVOT_EYE_HEIGHT_FACTOR,
z: this.feetPosition.z
};
const resolvedCameraYawRadians =
this.cameraYawRadians + this.targetLookOffsetYawRadians;
const resolvedPitchRadians = clampPitch(
this.pitchRadians + this.targetLookOffsetPitchRadians
);
const horizontalDistance =
Math.cos(this.pitchRadians) * this.cameraDistance;
Math.cos(resolvedPitchRadians) * this.cameraDistance;
const desiredCameraPosition = {
x: pivot.x - Math.sin(this.cameraYawRadians) * horizontalDistance,
y: pivot.y + Math.sin(this.pitchRadians) * this.cameraDistance,
z: pivot.z - Math.cos(this.cameraYawRadians) * horizontalDistance
x: pivot.x - Math.sin(resolvedCameraYawRadians) * horizontalDistance,
y: pivot.y + Math.sin(resolvedPitchRadians) * this.cameraDistance,
z: pivot.z - Math.cos(resolvedCameraYawRadians) * horizontalDistance
};
const resolvedCameraPosition =
this.context.resolveThirdPersonCameraCollision(