fix(satellites): fix back-facing detection with proper coordinate transform
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user