The Book of Shaders by Patricio Gonzalez Vivo


Calculate the reflection direction for an incident vector


float reflect(float I, float N)  
vec2 reflect(vec2 I, vec2 N)  
vec3 reflect(vec3 I, vec3 N)  
vec4 reflect(vec4 I, vec4 N)


I specifies the incident vector.

N specifies the normal vector.


For a given incident vector I and surface normal N reflect returns the reflection direction calculated as I - 2.0 * dot(N, I) * N.

N should be normalized in order to achieve the desired result.

See Also

dot(), refract()