fn float_reflect<F>( e1: &[F], e2: &[F], ) -> Option<ArrayVec<F, { crate::VectorSize::MAX }>>where F: Float,
The reflection of incident vector e1 off a surface oriented e2, e1 - 2 * dot(e2, e1) * e2.
e1
e2
e1 - 2 * dot(e2, e1) * e2