Featured image of post 빛의 밝기를 구하는 벡터의 dot 원리

빛의 밝기를 구하는 벡터의 dot 원리

수학공식 전혀 모르는 그림쟁이의 정리입니다 ㅎㅎㅎ

뭐 .. 벡터의 내적을 구하는 공식인 dot 에 대해 알아보자면…

일단 간단하게 U와 V 벡터의 내적 (dot) 을 구하면 공식은 다음과 같답니다.

각 벡터는 3차원 XYZ 벡터이므로

dot(U,V) =UX*VX + UY*VY + UZ*VZ

라는군요… 수학적으로 파고들면 그런가보다 하겠는데 잘은 모르겠어요 OTL
어쨌거나 이를 좀 더 응용해서 빛의 밝기를 구하는 방식으로 설명해 보도록 하죠.

빛의 밝기에 대한 기본적인 개념은 위와 같습니다. 빛을 직각으로 받으면 가장 밝고, 90도로 받으면 어둡지요.

이걸 도식적으로 표현하면 다음과 같습니다.

저것을 Sphere 라고 봤을 때 녹색 라인은 빛이 들어오는 방향이고, 적색 라인은 면의 노말값입니다. 
그렇다면 빛의 방향과 노말값만 있으면 빛의 강도를 결정할 수 있겠죠. 
물론 여기에는 대전제가 있습니다. 빛 자체의 강도죠. 

이것을 무시하기 위해서, 빛 방향 (U) 벡터값은 유닛벡터, 즉 1 로 하고 
노말값의 벡터(V)도 유닛벡터, 1로 합니다. 그렇게 강도를 미리 결정해 두면 순수하게 각도에 따른 빛 강도를 계산할 수 있겠죠.

그럼 그림을 보면, 1번일때 dot(U,V)의 값은 1입니다. 가장 밝지요.
그리고 5번일때 dot(U,V) 값은 0입니다. 가장 어둡습니다.
1번에서 5번으로 갈 수록 점점 어두운 값이 나오게 됩니다.

그럼 여기서 한 가지 알 수 있는 규칙이 있습니다.
“빛의 방향과 노말값의 각도가 멀어지면 dot 값은 작아지고, 이것은 빛이 어둡다는 것을 의미한다”

dot 값이 어떻게 작아지는지는 또 배우면 그때 얘기하죠. 일단은 외웁시다 ㅎㅎ
어쨌거나 각도가 넓어지면 어두워 지겠군… 이라는 개념을 익혀두는 것이 좋습니다.

여기서 또 하나 발전되어 알 수 있는 규칙이 있습니다.

“구의 높이를 1로 봤을 때 -빛도 직각 머리위에서 떨어진다는 전제일때-
빛이 만나는 부분의 수평값이 빛의 강도와 같다”

헤에. 말로는 어렵지만 그림으로 보면 편합니다.

그렇다면 이것을 총 집합해서 만든 마지막 정리.

“길이가 1인 두 유닛 벡터가 있을 때,
빛의 방향을 나타내는 U 벡터와 직각을 이루는
V 벡터의 위치가 빛의 밝기를 나타낸다. "

자 그림쟁이 머리 뽀개집니다.

어쨌거나 이 원리를 이용해서 , 각 폴리곤이나 면마다의 밝기값을 구해 준다면

이런 느낌의 그림을 그릴 수 있게 되는 거지요.

Hugo로 만듦
JimmyStack 테마 사용 중