📌 Shading
- 렌더링 과정에서 빛의 거리와 각도에 따라 물체 표면의 조도를 변화시킨다.
- 현실의 물리 법칙과 다르게 동작하는 경우가 많다.
Phong Reflection Model
- 현실의 물리 법칙과 다르게 동작한다.
- 빛을 3가지 종류로 구분하여 게산한 후 합치는 방식이다.
- Ambient Reflection, Diffuse Reflection, Specular Reflection
Ambient Reflection (주변광)
- 주변의 다른 물체면으로 부터 반사되어온 빛이다.
- 주변 반사에 의해 물체면으로 입사되는 빛은 계산하기가 매우 복잡하다.
- 따라서 주변광은 모든 물체면에 대해 일정 크기로 밝기를 증가시키는 것으로 대신한다.
- Normal 벡터, 광원 벡터, 카메라 벡터에 영향을 받지 않는다.
Diffuse Reflection (난반사광)
- 물체면에서 사방으로 반사되어 나가는 빛이다.
- 난반사에 의해 물체면으로 반사되는 빛은 계산하기가 매우 복잡하다.
- 따라서 난반사광은 물체면에서 사방으로 모두 동일하게 빛을 반사시킨다고 가정한다.
- 카메라 벡터에 영향을 받지 않는다.
- 벡터 l과 n 사이의 각이 작을수록 더 밝아진다.
- 벡터 l과 n이 정규화 되어있다면 밝기는 두 벡터의 내적에 비례한다.
- 사이각이 둔각인 경우를 대비하여 최소값을 0으로 둔다.
Specular Reflection (정반사광)
- 물체면에서 정반사되어 나가는 빛이다.
- 정반사에 의해 물체면에서 반사되는 빛을 계산한다.
- 반사 벡터와 카메라 벡터 사이의 각이 작을수록 더 밝아진다.
- 벡터 r과 v사이의 각이 작을수록 더 밝아진다.
- 벡터 r과 v가 정규화 되어있다면 밝기는 두 벡터의 내적의 a(Shininess Coefficient)제곱에 비례한다.
- 사이각이 둔각인 경우를 대비하여 최소값을 0으로 둔다.
- a(Shininess Coefficient)가 커질수록 하이라이트가 더 강해진다.
Phong Reflection Model
- a,b,c,d는 거리에 따른 밝기 감소량 계수이다.
- La,Ld,Ls는 하나의 빛이 가진 3가지 RGB속성이다.
- ka,kd,ks는 물체면이 가진 Material이다.
Phong-Blinn Reflection Model
- Phong reflection model의 Specular reflection이 개선 되었다.
- 벡터 r보다 h가 더 계산하기 쉽다.
Computing Per-vertex Normals
- Per-Vertex Normal 계산법
- Primitive의 Vertex로 이루어진 벡터들의 외적을 이용하여 Normal을 계산한다.
- 주변 Face의 Normal을 모두 더한 후 정규화 시킨다.