use glam::Vec3;
#[must_use]
pub(super) fn ray_is_visibly_returned(
exit_dir: Vec3,
cam_forward: Vec3,
key_dir: Vec3,
fill_dir: Vec3,
sin_lp: f32,
) -> bool {
let is_head_shadow = (-exit_dir).dot(cam_forward) > 0.96;
let key_dot = exit_dir.dot(key_dir).max(0.0);
let fill_dot = exit_dir.dot(fill_dir).max(0.0);
let ring_dot = sin_lp.mul_add(-0.8, exit_dir.y).abs() < 0.35;
let is_illuminated = (key_dot > 0.70) || (fill_dot > 0.75) || (ring_dot && exit_dir.y > 0.2);
!is_head_shadow && is_illuminated
}