@takram/three-atmosphere
Version:
A Three.js and R3F implementation of Precomputed Atmospheric Scattering
23 lines (19 loc) • 559 B
text/typescript
import { Vector3 } from 'three'
import type { Ellipsoid } from '@takram/three-geospatial'
const vectorScratch = /*#__PURE__*/ new Vector3()
export function getAltitudeCorrectionOffset(
cameraPosition: Vector3,
bottomRadius: number,
ellipsoid: Ellipsoid,
result: Vector3
): Vector3 {
const surfacePosition = ellipsoid.projectOnSurface(
cameraPosition,
vectorScratch
)
return surfacePosition != null
? ellipsoid
.getOsculatingSphereCenter(surfacePosition, bottomRadius, result)
.negate()
: result.setScalar(0)
}