일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 시스템프로그래밍
- Visual Micro
- 수광 소자
- Array
- 라인트레이서
- 통계학
- LineTracer
- c++
- priority_queue
- Arduino
- WinAPI
- arduino compiler
- Algorithm
- 아두이노 컴파일러
- Deque
- html
- stl
- 자료구조
- queue
- list
- vector
- Stack
- directx
- map
- 운영체제
- set
- 컴퓨터 그래픽스
- 아두이노
- 아두이노 소스
- C언어
- Today
- Total
Kim's Programming
3차원 그래픽스 조명 모델 본문
조명 모델
곡면 렌더링(Surface Rendering)의 과정
렌더링은 3차원 모델링기법을 이용하여 만들어진 객체들에 다음과 같은 과정을 거치게 합니다.
- 은면제거
- 셰이딩
- 투명한 물체 처리
- 텍스쳐 매핑
- 그림자 생성
5) 그림자(Shadow)의 생성
한 점에서 명암과 색상을 정하는 과학적 모델을 조명 모델 또는 밝기 모델(Lighting Medel)이라 부릅니다.
조명 모델에서 포함하는 조명의 종류 : 주변 조명, 점광원
객체 표면의 성질과 재질에 따라서 반사 : 산란 반사, 거울 반사
투명한 물체에 대한 계산 : 투과광, 굴절광
1) 조명의 종류
주변조명 또는 배경조명(Ambient Light 또는 Background Light) : 물체가 놓인 위치에 상관없이 모든 물체에 균일하게 비추어 지는 조명이며 산란(Diffusion)에 의해서 자연적으로 광원의 위치나 밝기 또는 광원의 수에 관계없이 모든 곳이 어느정도 균일하게 조명이 됩니다.
점광원 : 위치와 방향을 가진 광원으로 산란반사(Diffuse Reflection)현상과 동시에 거울반사(Specular Reflection)현상을 야기합니다. 따라서 반사되는 빛의 양은 관찰자의 위치에 무관하고 물체의 표면이 점광원을 향하고 있는 방향과 점광원까지의 거리에 의해서만 영향을 받습니다.
위 그림은 점광원이 표면에 닿을 때 빛이 모든 방햐으로 고루 산란됨을 보입니다. 관찰자에 관련없이 동일하게 반사되는 빛을 점광원에 의한 산란반사라고 합니다.
점광원에 의한 반사형상은 산란반사 외에도 거울반사 현상이 존재합니다. 거울 반사는 위의 그림과 같이 표면이 놓인 방향과 점 광원으로부터의 빛을 받는 방향에 따라 한 방향으로 많은 빛을 반사하는 현상을 의미합니다. 이 때 관찰자의 눈이 이 방향과 일치하게 되면 빛이 많이 반사된 표면의 부분이 매우 밝아 보이며 거울반사 현상을 하이라이트(Highlight)라고도 부릅니다. 또한 그림자(Shadow)도 점광원에 의해 발생하는 현상입니다.
2) 산란반사(Diffuse Reflection)
사란반사는 주변조명에 의한 산란반사와 점광원에 의한 산란반사가 있습니다. 따라서 총 산란반사량 = 주변조명에 의한 산란 반사량 + 점광원에 의한 산란 반사량 입니다. 산란반사의 특징은 광원에 의한 빛의 반사량이 관찰자의 위치에 상관 없다는 사실입니다. 주변 조명에 의한 산란반사는 물체가 놓인 위치에 상관없이 모든 물체에 균일하게 비추어지는 조명을 의미합니다. 주변 조명에 의한 산란 반사량은 아래 공식에 따라 표현됩니다.
Ia는 주변조명의 밝기(Intensity), Ka는 주변조명 반사계수(Ambient Reflection Coefficient)를 의미합니다.
점광원의 산란반사에 의한 표면의 밝기는 광원까지의 거리의 제곱에 반비래 합니다. 그 이유는 빛은 모든 방향으로 발산하고 반지름이 r인 구의 겉넓이 S=4(pi)r^2이 받는 빛의 양은 항상 일정하므로, 표면의 밝기는 광원까지의 거리의 제곱에 반비례하기 때문입니다. 따라서 점광원에 의한 산란 반사량 I는 아래와 같이 표현됩니다.
Ip는 광원의 밝기 Kd는 표면의 산란반사 계수, d는 표면에서 광원까지의 거리, d0는 일정값을 가지는 상수입니다.
* Lambert 의 Cosine 법칙
빛의 투과량을 라고 할때 'Lambert 의 Cosine 법칙'에 의하면 표면이 받는 빛의 양은
에 비례하고 다음의 관계가 성립합니다.
3) 거울반사(Specular Reflection 또는 Highlighting)
거울 반사는 점광원에 의해 방생하는 형상으로 빛이 광택이 나는 표면에 입사될 때 만일 관찰자가 빛의 입사각과 거의 같은 반사각 부근에 위치할 경우에 입사된 빛의 전부를 인식하게 됩니다. 위 그림에서 L방향에서 입사된 빛은 R방향으로 반사되고 관찰자는 V방향에 위치하고 있습니다. 여기서 V와 R사이의 각도를 파이라고 하면 파이가 0에 가까울 수록 거울 반사량은 증가하고 90도에 가까울 수록 거울반사량이 감소합니다.
Phong이 제안한 거울반사
Phong은 빛을 받는 표면의 거울반사량을 계산할 수 있는 경험적 모델(Empirical Model)공식을 아래와 같이 제안하였습니다. 이 공식을 적용하면 현실적으로 매우 훌륭한 거울반사 결과를 얻을 수 있음이 검증되었습니다.
위의 공식에서 Ip는 광원의 밝기 d는 광원에서 표면 까지의 거리 W(세타)는 표면물질의 특성과 및의 입사각 세타에 의해 결정되는 거울반사 계수를 의미하는 함수입니다.
Phong의 조명모델
바로위에 Phong의 거울반사 공식에서 이고 여기서
, 즉 일정값을 가진다고 가정하겠습니다. 이제 주변조명과 점광원에 의한 산란반사와 거울반사를 모두 합하면 표면의 한 점에서의 총 밝기는 다음의 식에 의해 정해집니다.
'Computer Theory > Computer Graphics' 카테고리의 다른 글
3차원 그래픽스 은면제거 (0) | 2016.01.25 |
---|---|
3차원 그래픽스 객체의 모델링(2/2) (0) | 2016.01.25 |
3차원 그래픽스 객체의 모델링(1/2) (0) | 2016.01.25 |
3차원 그래픽스 투영을 위한 변환 (4) | 2016.01.24 |
3차원 그래픽스 투영의 종류 (0) | 2016.01.24 |