illumination models
사실감있는 표현을 위해서 원근투영,자연광 효과 등을 적용시켜ㅕ야 한다.
사진처럼 실제같은 표현을 위해서 두 요소가 필요하다
-정확한 물체 표현
-빛의 효과를 잘 반영하여 묘사
Light sources
광원
점광원은 관측자의 위치,물체위치,광원위치에 따라 직접반사,간접반사 등 영향을 미친다.
분산 광원: 광원,물체,관측자 위치 차이가 없다
Ambient light
주변광
공간,방향 특성이 없다. 어디에 있든 일정한 밝기이다
물체의 광학적 속성에만 영향을 받는다.(광택/비광택/불투명/투명..)
주변광 조병 방정식
k(a)l(a),
k(a) : 주변반사계수
l(a): 주변광 세기. 모든물체의 l(a)는 동일하다
---
Diffuse Reflection: 확산 반사
여러 방향으로 퍼지는 반사.
물체 표면이 거칠거나, 작은 알맹이가 있는 경우, 거친 매트형 표면 등에서 확산 반사가 일어난다.
확산 반사는 광원의 방향과 표면이 이루는 각에 영향을 받는다.
단위면적당 빛에너지는 cos세타만큼 비례하여 떨어진다.
확산 반사 방정식
k(d)l(p)cos세타
k(d): 확산반사계수
l(p): 점광원 빛의세기
cos세타: 물체와 광원의 각도에 대한 코사인값. == (N.L) //물체와 광원 정규화한것의 내적
Diffuse reflction - light source attenuation: 광원 감쇄
광원과 물체 사이 거리가 고려되지 않았음.
따라서 확산반사 방정식에 감쇄값을 넣어야 함.
l = k(a)l(a) + f(att)k(d)l(p)(N.L)
f(att)=1/d^2;
거리의 제곱에 반비례한다.
그런데 이렇게하면 너무 민감하다는 문제가 발생.
따라서 분모가 너무 작아지는것을 방지하는 상수가 사용되기도 함.
---
Colored Lights
색을 나타내자.
l(R) = k(a)l(aR)O(dR) + f(att)k(d)l(pR)O(dR)(N.L)
l(G) = k(a)l(aG)O(dG) + f(att)k(d)l(pG)O(dG)(N.L)
l(B) = k(a)l(aB)O(dB) + f(att)k(d)l(pB)O(dB)(N.L)
O는 색을 나타내는 변수
1. 주변광 반사 방정식: Ia = ka * La
- Ia는 주변광 반사광을 나타냅니다.
- ka는 물체의 주변광 반사 계수입니다.
- La는 주변광의 세기입니다.
2. 확산 반사 방정식: Id = kd * Lp * (N•L)
- Id는 확산 반사광을 나타냅니다.
- kd는 물체의 확산 반사 계수입니다.
- Lp는 점 광원의 세기입니다.
- N과 L은 각각 물체의 표면 법선과 광원을 가리키는 벡터로, (N•L)는 이 두 벡터의 내적입니다.
3. 광원 감쇄를 포함한 총 반사광 계산식: I = Ia + f_att * Id
- I는 총 반사광을 나타냅니다.
- f_att는 광원 감쇄 계수입니다.
4. RGB 색상을 사용한 반사광 계산식: Ir = ka * La_r * Od_r + f_att * kd * Lp_r * (N•L)
- 위의 계산식은 빛의 빨간색 성분을 위한 것입니다.
- Od_r은 물체의 빨간색 확산 반사 계수입니다.
- La_r와 Lp_r는 각각 주변광과 점 광원의 빨간색 성분의 세기입니다.
- 이러한 계산은 녹색과 파란색 성분에 대해서도 동일하게 수행됩니다.
정반사(거울반사)
밝게 빛나는 표면에서 발생. (금속,이마, 사과..)
입사각과 거의 같은 각도로 반사
관측자가 반사각에 가까이 있을수록 빛이 더 밝고 작게 나타남
Phong illumination model
cos^n a로 나타낼 수 있는데,
n이 커질수록 값의 변화가 급격하게 일어난다.
완전반사는 n이 무한대라고 생각하면 된다.
l=k(a)l(a)O(d) + f(att)l(p)[kdOd cos세타 + W(세타) cos^n a]
l=k(a)l(a)O(d) + f(att)l(p)[kdOd (N.L) + k(s) cos^n a]
k(s)는 정반사계수임.(재질.표면에 따라 다름)
정반사는 거리와 광원의 빛의세기에 영향을 받는것을 확인할 수 있음.
Phong 조명 모델은 이런 현상을 효과적으로 나타냅니다. 이 모델에서 정반사의 강도는 cos^n a의 형태로 계산되는데, 여기서 a는 반사각과 시선의 각도를 나타냅니다. n은 반짝임의 정도를 결정하는 값으로, n이 커질수록 반사된 빛이 더욱 집중되며, n이 무한대에 가까워질 때 완전한 거울 반사를 나타낸다고 생각할 수 있습니다.
따라서, Phong 조명 모델의 전체 방정식은 다음과 같이 표현할 수 있습니다:
I = ka * La * Od + f_att * Lp * [kd * Od * (N•L) + ks * (R•V)^n]
이 방정식에서:
- I는 최종 반사광을 나타냅니다.
- ka, kd, ks는 각각 주변광, 확산, 정반사의 반사 계수입니다.
- La와 Lp는 각각 주변광과 점 광원의 세기입니다.
- Od는 물체의 색상을 나타내는 확산 반사 계수입니다.
- N과 L은 각각 물체의 표면 법선과 광원을 가리키는 벡터입니다.
- R은 표면에서 반사된 빛의 방향을 나타내는 벡터이고, V는 카메라 (관측자) 방향을 나타내는 벡터입니다.
- n은 반짝임의 정도를 결정하는 값입니다.
이 방정식을 통해 주변광, 확산 반사, 그리고 정반사를 모두 고려하여 물체가 어떻게 보일지를 정확하게 계산할 수 있습니다.
'2023-1 > 컴퓨터그래픽스' 카테고리의 다른 글
Shading models (0) | 2023.06.15 |
---|---|
Visible-Surface Determination (0) | 2023.06.15 |
Parametric Cubic Curves (0) | 2023.06.14 |
Projections/Curves and Surfaces (0) | 2023.06.14 |
Viewing 3D world on 2D displays (0) | 2023.05.06 |
댓글