낱말 부터 풀이하는게 좋을듯 싶다.
퐁은 사람 이름이다.
반영(反影)은 빛이 반사되어 비침을 뜻한다.
반사광이란, ... 반사된 빛이다.

즉, 퐁이 제안한 빛이 반사되어진 부분의 물채 색(반사된 빛이 .. 물채 색을 뜻 한다)이다

자동차를 예로 들어 보자, 자동차가 도로에 지나다닐때 반짝 반짝 거리는 것을 볼수있다.
자동차의 반짝 반짝 거리는

이 반짝 반짝 거리는 부분이 바로 반영 반사광이다.

그렇다면 퐁이 계산했던 반영반사광 원리 를 알아보자.

vLight 는 빛의 입사 벡터 이다.
vRLight 는 빛의 입사된 벡터의 반사 벡터이다.
vEye 는 입사 눈 벡터이다.
vNorMal 은 물체의 법선 벡터를 말한다.

퐁은 vRLight 와 vEye 가 가까워 질때, 반영 반사광이 쌔진다는 정리를 하였다.

식으로 정리하자면,
vRL = Normalize(vRLight);
vE = Normalize(vEye);

Normalize 는 단위 벡터로 만든다고 보면 되며, 단위벡터가 필요한 이유는 방향성만 필요하기 때문이다.

vE 와 vRL의 길이가 각각 1이고,  vRL 과 vE의 각이 Θ 이므로 x  = cosΘ 가 성립된다.(각 벡터의 길이가 1이므로 이렇게 축소가 된다)

이때 x = 1 이라면 Θ가 0을 뜻하므로, 두 벡터가 서로 겹쳐져있다는 것이 증명된다.
반대로 x가 -1 ~ 0 이라면 빛의 반사벡터의 영향권 밖인 90도 ~ 360도 라는 것이 증면된다.

즉, 두 벡터가 0도 ~ 90도라면 0 ~ 1의 값을 가지며, 이값은 은 눈에 반영된 반사광의 분포도라 할수 있겠다.


이 분포도를 이용하여, 물체의 반영색과 반영 반사광의 분포도로 최종적인 반영색이 만들어 진다.

이것이 쉐이딩의 퐁 반영 반사광의 원리이다.

PS.
어떻게 하면 반사벡터를 구할까?
구글링으로 반사 벡터라 치면 친절한 설명이 나오므로 나는 생략한다.
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요