You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thebookofshaders/glossary/faceforward.md

24 lines
708 B
Markdown

## Faceforward
Return a vector pointing in the same direction as another
### Declaration
```glsl
float faceforward(float N, float I, float Nref)
vec2 faceforward(vec2 N, vec2 I, vec2 Nref)
vec3 faceforward(vec3 N, vec3 I, vec3 Nref)
vec4 faceforward(vec4 N, vec4 I, vec4 Nref)
```
### Parameters
```N``` specifies the vector to orient.
```I``` specifies the incident vector.
```Nref``` specifies the reference vector.
### Description
```faceforward()``` orients a vector to point away from a surface as defined by its normal. ```If dot(Nref, I) < 0``` faceforward returns ```N```, otherwise it returns ```-N```.
### See Also
[reflect()](index.html#reflect.md), [refract()](index.html#refract.md)