퐁의 반영 반사광은 반사벡터를 구해야 한다는 조건이 따르게 된다. 하지만 특정 컴퓨터에서 반사벡터를 구하는게 무리일 수가 있어, 퐁 같은 효과를 내면서 연산을 줄일수 있을까? 생각을 하게 된다.

그렇게 나온것은 블린-퐁 반영 반사광이다.

사람들은 유심히 퐁 반영 반사광을 보다가 한가지 규칙을 찾았다.
Half Vector

L 은 빛 벡터
E 는 눈 벡터
H 는 L와 E의 중간 각도 벡터
N 는 법선 벡터

여기서 한가지 숨겨진 규칙을 찾자면, L 의 반사벡터가 R 이 있다고 친다면
L 과 R의 중간 각도의 벡터는 당연히 N 벡터가 될 것이다.

즉 L 벡터와 반사벡터의 중간 벡터는 H 벡터이며, H 벡터와 N 벡터는 같은 벡터 일 것이다.. 잠깐 뒤로 생각해 본자, 퐁 반영 반사광에서 반사 벡터와 눈 벡터가 0도 즉, 같은 방향이라면 최고로 높은 반영 반사광을 낸다고 설명했다. 당연히 이때도 반사 벡터와 눈 벡터의 중간 벡터 H 는 N 벡터와 같은 방향 이다.

이제 반대로 생각해보면, H 벡터와 N 벡터가 같은 벡터라면, 반사벡터와 눈벡터는 정 반대벡터가 되어, 반영 반사광의 빛 분포도는 제일 높은 1이 될 것이다.

1일 때 서로 같은 표면에 대한 계산이므로, 퐁 반영 반사광과 같다. 물론 N != H 일때는 서로 다른 계산이 될것이다. 하지만, 충분히 퐁과 같은 효과를 낼수 있으므로, 사람들은 이런 원리를 이용하게 된다.

이것을 블린-퐁 반영 반사광 이라 불린다.

이 원리를 이용하여 H 벡터와 N 벡터를 내적하게 되었을 때(각도를 알아 봤을 때) 0 ~ 1 사이의 값을 분포도로 사용 될수 있다.


....


신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요