본문 바로가기

ComputerScience/Computer Graphics

CG - 5. Lighting

728x90

1. Illumination

- 3D 물체를 2D로 rasterize하는 과정에서 물체의 현실감을 부여하기 위해서는 depth cue, illumination이 반영되어야 한다.

- 광원에서 빛이 얼마나 흡수되고 반사되는지 물체의 성질도 반영이 되어야 한다.

- illumination model : 광원을 고려한 모델의 색을 결정

- surface rendering method : illumination model을 활용하여 픽셀의 색을 결정

- 만약 여러 물체가 있다면 각 물체에서 반사되어 나온 빛, 광원, 이 모든 관계를 고려해서 물체의 최종색을 구해야 한다. 매우 사실적인 illumination이고 이를 global illumination이라고 한다. 하지만 이 방법은 graphics pipleline에서 병렬처리를 사용하지 못하게 하기 때문에 시간이 매우 오래 걸린다.

- shader의 고도로 병렬화된 작업의 장점을 살리기 위해 광원의 direct light만을 고려하는 Local illumination을 사용해서 구현한다.

2. Light model

Point Light

- 광원을 하나의 point라고 가정하는 광원 모델

- 물체 표면에 도달하는 빛의 세기 I(L)은 

Directional Light

- 태양처럼 아주 먼 거리에 광원을 나타내는 모델

- 모든 빛이 수평으로 들어온다.

Spot Light

- 일정 각도범위만을 비추는 광원 모델

Area Light

- 형광등처럼 넓은 면적을 가지고 있는 광원 모델

- 무수히 많은 Point light source가 있다고 생각할 수 있다.

3. Intensity

- 첫번째는 attenuation에 따른 빛의 세기 변화이다. 멀수록 거리의 제곱에 비례해서 빛의 강도가 줄어든다.

- 두번째는 비추는 각에 따른 빛의 세기 변화 이다. 비스듬하게 비출 수록 surface에 도달하는 빛의 영역이 넓어지기 때문에 빛의 강도는 줄어든다.

3. Reflection

- reflection구현 중에 가장 많이 사용하는 Phong illumination model을 알아보자.

- phong model은 diffuse, specular, emission, ambient 네가지를 모두 더해서 물체의 색을 결정한다.

- 만약 광원이 여러개라면 emission과 ambient를 제외한 모든 I를 더해주면 된다.

- 아래 하나씩 모든 요소들에 대해 알아보자.

diffuse reflection

- 흡수된 빛이 모든 방향으로 반사되는 표면을 구현한다. Lambertian surface

- KD는 물체의 성질에 대한 값이다.

 

specular reflection

- 거울, metal

- 빛이 L방향으로 들어온다고 했을때, R로 빛이 반사되어 나올 것이다. 그럼 viewer의 위치에 따라 표면이 달라 보인다.

- n이 크면 거울처럼 반사를 매우 잘 하는 것이다. shining한 물체인 것이다. 반대로 n이 작으면 반사를 덜 하는 물질인 것이다.

- Ks는 물질의 성질을 나타내는 값이다.

emission

- 빛을 방출하는 물체에 해당한다.

ambient term

- 다른 물체들에서 반사된 빛들도 반영을 하기 위한 방법이다.

- 아주 간략화 해서 구현되었다.

 

* 끝으로 parameter에 대한 얘기를 하면 다음과 같다.

728x90
반응형

'ComputerScience > Computer Graphics' 카테고리의 다른 글

CG - 7. Texture  (0) 2021.10.13
CG - 6. Surface Rendering  (0) 2021.10.08
CG - 4. Viewing System  (0) 2021.09.24
CG - 3. Transformation  (0) 2021.09.24
CG - 2. 라이브러리 소개  (0) 2021.09.15