fix(satellites): fix back-facing detection with proper coordinate transform

This commit is contained in:
linkong
2026-03-24 12:10:52 +08:00
parent b57d69c98b
commit 81a0ca5e7a

View File

@@ -423,10 +423,11 @@ export function isSatelliteFrontFacing(index, camera) {
const satPos = positions[index].current; const satPos = positions[index].current;
if (!satPos) return true; if (!satPos) return true;
const worldSatPos = satPos.clone().applyMatrix4(earthObjRef.matrixWorld);
const toCamera = new THREE.Vector3().subVectors(camera.position, earthObjRef.position).normalize(); const toCamera = new THREE.Vector3().subVectors(camera.position, earthObjRef.position).normalize();
const toSat = new THREE.Vector3().subVectors(satPos, earthObjRef.position).normalize(); const toSat = new THREE.Vector3().subVectors(worldSatPos, earthObjRef.position).normalize();
return toCamera.dot(toSat) < 0; return toCamera.dot(toSat) > 0;
} }
let earthObjRef = null; let earthObjRef = null;