How much starlight reaches point past one spherical occluder (centre
occluderCentre, radius occluderRadius) — 1 unshadowed, 0 in the
umbra, in between across the penumbra. starDirection is a unit vector.
The separation is measured with atan2(|cross|, dot) rather than
acos(dot): the angles that matter are a few ×10⁻⁴ rad (the Sun is 0.05°
across from Saturn), where acos of a dot product near 1 loses almost
all its precision — badly so in the shader's float32.
How much starlight reaches
pointpast one spherical occluder (centreoccluderCentre, radiusoccluderRadius) — 1 unshadowed, 0 in the umbra, in between across the penumbra.starDirectionis a unit vector.The separation is measured with atan2(|cross|, dot) rather than acos(dot): the angles that matter are a few ×10⁻⁴ rad (the Sun is 0.05° across from Saturn), where acos of a dot product near 1 loses almost all its precision — badly so in the shader's float32.