Luna::Simd::reflect2_f4
float4 reflect2_f4(float4 i, float4 n)
Performs reflection operation based on the first two elements of i
(incident vector) and n
(normal vector), and stores the refected vector in dst
.
PROJ := (a.x * b.x) + (a.y * b.y)
dst.x = i.x - 2 * PROJ * n.x
dst.y = i.y - 2 * PROJ * n.y
dst.z = i.z - 2 * PROJ * n.z
dst.w = i.w - 2 * PROJ * n.w