Upload
cancan21st
View
1.034
Download
0
Embed Size (px)
Citation preview
반사 벡터를 구한다는 것은?
EN(그림은 이상하지만, 길이가 1인 방향 벡터임)
E는 반사 해야 할 source가 되는 벡터
N은 반사 면의 법선 벡터(normalize되어있다고 가정함)
이 빨간 선의 벡터를 구하고 싶다는 것
EN
아이디어는 아주 간단하다.
1. E를 뒤집어서 ( -E)
-EN
2. -E와 N을 내적한 것에
(내적하면 빨간 선의 길이가 나온다.)
-EN
직각 삼각형이라고 생각하면,
cos@ = 밑변/빗변 ( ||N|| / ||E||)
밑변 = 빗변 * cos@ ( 빨간 선의 길이 = ||E|| cos@ )
첨부설명 : 내적이 빨간 선의 길이가 되는 이유
-EN
3. 그 길이의 두 배로 만들어서
내적의 값은 scalar
즉, 한 개의 값이다.(float[1])
-EN
4. N방향을 가지는 벡터에 곱해주고
방향 벡터(길이가 1인)에 길이 값 (len)을 곱하면,
길이만 (len)로 늘어난 같은 방향을 가리키는 벡터가 나온다.
EN
4. 거기에 E를 더하면
구하고자 했던 반사벡터를 구할 수가 있다.
두 벡터를 더하면, 원점에서 두 벡터만큼 이동한 위치로 향하는 벡터가 만들어진다.
즉, 빨간 벡터 두 개를 더하면 녹색 벡터가 나옴.
E
EN
E