관리 메뉴

Kim's Programming

3차원 그래픽스 조명 모델 본문

Computer Theory/Computer Graphics

3차원 그래픽스 조명 모델

Programmer. 2016. 1. 25. 22:33

조명 모델



곡면 렌더링(Surface Rendering)의 과정



렌더링은 3차원 모델링기법을 이용하여 만들어진 객체들에 다음과 같은 과정을 거치게 합니다.


      • 은면제거

      • 셰이딩

      • 투명한 물체 처리

      • 텍스쳐 매핑

      • 그림자 생성

1) 은면의 제거

은면제거는 관찰자로 부터 보이지 않는 면들을 제거하는 것을 의미합니다. 은면제거가 렌더링 과정에 포함될 수도 아닐 수 도 있지만 은면제거를 수행한다는 것은 객체 면들에 불필요한 렌더링을 피함으로써 계산량을 줄일 수 있는 장점이 됩니다.

2) 면의 셰이딩

객체의 모델의 다각형면이나 다각형 메쉬상의 각 점의 위치에서 관찰자의 눈에 들어오는 빛의 반사량과 성분을 계산하는 과정을 다각형 셰이딩(Polygon Shading)이라고 합니다. 셰이딩은 어떤 물체가 입체감 있게 보이게 하는 가장 중요한 요소입니다. 그렇기 떄문에 렌더링 과정에서 가장 핵심적인 과정이면서 처리시간이 가장 많이 소요되는 부분이기도 합니다. 대표적인 셰이딩 기법에는 균일 셰이딩, Gouraud 셰이딩, 및 Phong 셰이딩 기법이 있습니다.

3) 투명한 물체의 표현

투명한 물체는 관찰자에게 자신뿐만 아니라 뒤에 위치한 물체의 모습도 어느정도 겹쳐서 보이게 해줘야 하는데, 이것은 빛이 뒤에 위치한 물체에 반사되어 그 앞에 위치한 물체를 투과하여 관찰자의 눈에 들어오기 때문입니다. 실감 있는 결과를 위해서는 앞에 위치한 물체의 투명도에 따른 빛의 투과량을 계산하여 반영해 주어야 합니다.

4) 텍스쳐 매핑(Texture Mapping)

이미지나 사진을 3차원 물체의 표면에 입히는 과정을 텍스쳐 매핑이라고 합니다. 객체상에서 입히는 텍스처는 반복적인 무늬를 가진 패턴일 수도 있고 사진 이미지일 경우도 있습니다.

5) 그림자(Shadow)의 생성

물체와 형태와 색상을 눈으로 인지할 수 있다는 것은 광원이 존재한다는 것을 의미합니다. 광원은 태양이 될수도, 전구가 될 수도 있습니다. 빛이 모든 방향으로 균일하게 빛추는 경우에는 그림자가 생겨날 수 없지만 전구같은 광원이 존재하는 경우 그림자가 생겨나게 됩니다.


조명 모델(Illumination Model)



한 점에서 명암과 색상을 정하는 과학적 모델을 조명 모델 또는 밝기 모델(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의 거울반사 공식에서 이고 여기서 , 즉 일정값을 가진다고 가정하겠습니다. 이제 주변조명과 점광원에 의한 산란반사와 거울반사를 모두 합하면 표면의 한 점에서의 총 밝기는 다음의 식에 의해 정해집니다.