8
반사 벡터를 구한다는 것은? E N (그림은 이상하지만, 길이가 1인 방향 벡터임) E는 반사 해야 할 source가 되는 벡터 N은 반사 면의 법선 벡터(normalize되어있다고 가정함)

반사벡터

Embed Size (px)

Citation preview

Page 1: 반사벡터

반사 벡터를 구한다는 것은?

EN(그림은 이상하지만, 길이가 1인 방향 벡터임)

E는 반사 해야 할 source가 되는 벡터

N은 반사 면의 법선 벡터(normalize되어있다고 가정함)

Page 2: 반사벡터

이 빨간 선의 벡터를 구하고 싶다는 것

EN

Page 3: 반사벡터

아이디어는 아주 간단하다.

1. E를 뒤집어서 ( -E)

-EN

Page 4: 반사벡터

2. -E와 N을 내적한 것에

(내적하면 빨간 선의 길이가 나온다.)

-EN

직각 삼각형이라고 생각하면,

cos@ = 밑변/빗변 ( ||N|| / ||E||)

밑변 = 빗변 * cos@ ( 빨간 선의 길이 = ||E|| cos@ )

첨부설명 : 내적이 빨간 선의 길이가 되는 이유

Page 5: 반사벡터

-EN

3. 그 길이의 두 배로 만들어서

내적의 값은 scalar

즉, 한 개의 값이다.(float[1])

Page 6: 반사벡터

-EN

4. N방향을 가지는 벡터에 곱해주고

방향 벡터(길이가 1인)에 길이 값 (len)을 곱하면,

길이만 (len)로 늘어난 같은 방향을 가리키는 벡터가 나온다.

Page 7: 반사벡터

EN

4. 거기에 E를 더하면

구하고자 했던 반사벡터를 구할 수가 있다.

두 벡터를 더하면, 원점에서 두 벡터만큼 이동한 위치로 향하는 벡터가 만들어진다.

즉, 빨간 벡터 두 개를 더하면 녹색 벡터가 나옴.

E

Page 8: 반사벡터

EN

E