2020-07-30 07:03:05 +00:00
## Faceforward
2020-07-30 09:34:42 +00:00
Tìm vector pháp tuyến cùng phía với vector tới so với một bề mặt.
2020-07-30 07:03:05 +00:00
### Các phiên bản
```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)
```
### Các tham số
2020-07-30 09:34:42 +00:00
```N``` vector pháp tuyến của bề mặt sẽ va chạm (hướng trả về sẽ trùng hướng này hoặc hướng ngược lại)
2020-07-30 07:03:05 +00:00
2020-07-30 09:34:42 +00:00
```I``` vector tới (hướng tới vị trí va chạm với bề mặt).
2020-07-30 07:03:05 +00:00
2020-07-30 09:34:42 +00:00
```Nref``` vector pháp tuyến của bề mặt cần kiểm tra.
2020-07-30 07:03:05 +00:00
### Mô tả
2020-07-30 09:34:42 +00:00
```faceforward()``` trả về hướng của bề mặt (vector pháp tuyến) tại vị trí va chạm với tia tới. Nếu ```dot(Nref, I) < 0 ` ` ` trả về ` ` ` N ` ` ` , ngược lại trả về ` ` ` -N ` ` ` .
2020-07-30 07:03:05 +00:00
### Tham khảo thêm
[reflect() ](/glossary/?lan=vi&search=reflect ), [refract() ](/glossary/?lan=vi&search=refract )