KH_C++
Ambient, Diffuse, Specular, Phong Reflection 본문
[ Ambient ]
위 그림에서 B면은 직접적으로 빛에 노출되지 않지만 주변의 다른 물체면으로 부터 반사되어온 빛에 의해 밝기가 생긴다. 이렇게 주변 반사에 의해 우리 눈으로 반사되는 빛을 Ambient light이라고 한다.
간접조명을 의미하고, 광원과 상관없이 주변으로부터 들어오는 빛이다. 광원에 직접 노출되지 않는 면에 밝기를 부여하기 위해 사용된다. 지역 조명 모델에서 전역 조명 모델 효과를 근사적으로 부여하기 위해 사용한다.
주변 반사에 의해 물체면으로 입사되는 빛은 거의 모든 방향으로부터 날아들기 때문에 어디서 얼마만 한 세기로 날아오는지 계산하기가 매우 복잡하다.
Ambient light은 시점의 위치에 무관하게 모든 물체면에 대해 일정 크기로 밝기를 증가시키는 것으로 대신하기도 한다.
수식 : 모든 source로부터 모든 방향을 따라서 P로 들어오므로 normal(법선 벡터)이나 camera(ray 벡터)와는 전혀 상관이 없는 독립적인 값들이다. 따라서 아래의 식처럼 정의된다.

- Ka - 주변광 계수
- Ia - 광원에서 물체면에 입사되는 입사광의 세기, 광원에 세기에 비례한다.
[ Diffuse ]
주변 반사만 사용하면 물체의 모든 부분은 동일한 밝기로 보인다. 즉, 광원의 위치에 따른 명암 차이가 전혀 드러나지 않기 때문에 물체의 3차원적인 입체감을 부여하기 어렵다. 물체의 명암을 부여하기 위한 것이 확산 반사이다.
확산 반사는 광원에서 나온 빛이 직접 물체면에 부딪쳐 여러방향으로 확산되는 Diffuse에 해당된다.
완벽 확산체
위의 그림처럼 거친 면으로부터 반사되는 빛은 거의 모든 방향을 향한다. 이러한 물체를 완벽 확산체
(Perfect Diffuser)라 한다.
방향성 확산체
위의 그림처럼 부드러운 표면으로부터 반사되는 빛은 거의 일정한 방향을 향하며, 이러한 물체를 방향성 확산체
(Directional Diffuser)라고 한다.
대부분의 물체면은 위의 그림처럼 반 원구 형태로 완벽 확산체이거나 방향성 확산체 이 두 가지 사이에 존재한다.
지역 조명모델에서는 그래픽 처리를 단순화하기 위해서 해당 물체가 반 원구 형태의 완벽 확산체임을 가정한다.
Diffuse를 의미하며, 광원으로부터 점P까지의 벡터를 l, 점 P의 normal을 n으로 표현한다. 두 벡터 사이의 각이 작으면 작을수록 점 P는 더 많은 조명을 받게 될 것이다. 0도라면 빛을 수직에서 다이렉트로 받고 있다는 말이 된다.
벡터 l과 n이 정규화 되어있다면 점 P로 들어오는 빛의 양은 두 벡터의 내적값이라고 정의할 수 있다.
표준 벡터끼리의 내적 → cos세타 * 두 벡터의 길이, 표준 벡터의 길이는 1이므로
두 벡터가 이루는 사이각을 의미하게 된다.
수식 :

- Kd - 확산광 계수
- Id - 광선에서 물체면에 입사되는 입사광의 세기, 광원에 세기에 비례한다.
- 벡터 N - 표면 법선 벡터 (교점 법선 벡터)
- 벡터 L - 광원 벡터(ray 벡터)
[ Specular ]
유리 공예, 윤기나는 물체처럼 어떤방향에서 바라볼 때에 광택이 나는 반질반질한 표면에서 반사되는 빛을 Specular light이라 하고, Specular light에 의해 물체면에 형성된 반짝이는 이미지를 하이라이트(Highlight)라 한다.
Specular light에 의한 물체면의 색은 물체 자체의 색(물체가 흡수해서 반사하는 색)이 아니라 광원 그 자체의 색이 그대로 우리 눈에 들어온다.
그림과 같이 경면 반사는 빛의 정반사에 의한 것이다. 확산광이 공간상의 모든 방향으로 반사되는데 비해 Specular light는 하나의 평면을 따라서 반사된다, 즉, 시점이 정확히 반사광의 진행방향에 놓여 있을 때만 반사광을 볼 수 있다.
일반적으로 어떤 물체면이 완벽하게 매끄러울 수는 없으므로 경면광도 약간은 다른 방향으로 흩어진다. 그림처럼 시점이 약간 비껴 나 있어도 반사광 일부가 시점에 도달한다. 왼쪽의 경우 Specular light의 세기를 그림으로 표현한 것으로, 반사광을 중심으로 하는 로우브(Lobe)는 시점과 반사 벡터가 일치할 때 가장 크다.
수식 : 벡터 R과 벡터 V 사이의 각이 0이 되면 하이라이트는 최대가 된다.
- Ks - 경면광 계수 (교점 법선 벡터)
- Is - 광원에서 물체면에 입사되는 입사광의 세기
- n - 광택 계수
- 벡터 R - 반사광 벡터
- 벡터 V - 카메라 벡터
[ Emissive light ]
자체 발산광이다. 즉 순수하게 material에 의해서만 결정이 된다.
[ Phong Reflection ]
Ambient, Diffuse, Specular, emissive light, 이 네 가지 항목만을 고려하여 빛을 결정한다.
출처 :
https://songsmir.tistory.com/9
'공부' 카테고리의 다른 글
스키닝(Skinning) (0) | 2023.06.23 |
---|---|
SIMD (Single Instruction Multiple Data) (0) | 2023.06.20 |
레이 캐스트(Ray Cast), 레이 트레이싱(Ray Tracing) (2) | 2023.06.01 |
함수 포인터 (0) | 2023.05.25 |
Yaw Pitch Roll(요, 피치, 롤), Gimbal Lock(짐벌락), Quaternion(쿼터니언) (0) | 2023.05.17 |