pub fn refract(v: Vec3, n: Vec3, eta: f32) -> Option<Vec3>
Refract a vector (Snell’s law), returns None for total internal reflection