주의 : 정확하지 않은 내용이 포함되어 있을 수 있습니다. 이상하면 참고자료를 확인해 보세요.


[ PBR 이란 무엇인가 ] 1. 인간과 빛

 

들어가며

술자리에서 직장 동료에게서 PBR 에 대해 PT 를 했으면 좋겠다는 이야기를 들었습니다. 그래서 프로그래머가 아닌 사람들이 PBR 에 대해 쉽게 이해할 수 있게 하는 방법이 무엇일까에 대한 고민을 해 보았습니다. 짧은 시간에 많은 내용을 전달하는 것은 힘들 것이라는 생각이 들었고, 너무 깊게는 아니지만 꼭 필요한 내용들에 대해서 설명하는 것으로부터 시작해야겠다는 생각이 들었습니다. 그래서 [ PBR 이란 무엇인가 ] 라는 글을 정리하기로 했습니다.

Physically Based Rendering( PBR ) 이라는 것은 "물리에 기반한 렌더링"이라는 의미입니다. 엄밀하게 이야기해서 현세대의 그래픽 하드웨어와 이론으로는 완벽하게 물리적으로 정확한 렌더링을 하는 것은 불가능합니다. 이진정보를 통해 자연현상을 완벽하게 표현한다는 것은 거의 불가능에 가깝습니다. 단지 기존보다는 "더욱" 물리적으로 정확하다는 의미라고 생각하시면 됩니다.

[1] 과 [2] 에 의하면 물리적으로 정확한 렌더링 모델이라는 것은 다음과 같은 요소들에 의해서 결정됩니다:

    • 전역 조명( Global Illumination ) : 이미지 기반 라이팅( Image Based Lighting, IBL ).
    • 에너지 보존 법칙( Energy Conservation ).
    • 반사도( Reflectivity ) : 디퓨즈 및 스펙큘러( Diffuse & Specular ).
    • 미세면( Microsurface ) : 러프니스( Roughness ).
    • 프레넬 법칙( Fresnel's Law ).
    • 금속성( Metalicity ).

아마 아티스트들은 위에서 언급한 요소들을 보는 순간 멘붕에 빠지게 될 것입니다. 사실 그래픽스에 익숙하지 않은 프로그래머들도 처음에는 이해하기 힘들겁니다. 사실 PBR 에 대해서 설명하려면 책 한권은 필요합니다. 그렇지만 이 문서의 목적은 아티스트에게 PBR 을 이해하기 위한 기본적인 정보들을 전달하는데 있기 때문에 너무 깊게 파고 들지는 않을 계획입니다. 그럼에도 불구하고 분량이 매우 많기 때문에 시리즈를 구성하기로 했습니다.

앞에서 언급한 요소들에 대해서 설명하기 이전에 알아야할 정보들에 대해서 설명한 다음에, 본격적으로 PBR 에 대해서 다룰 계획입니다.

빛이란 무엇인가

우리는 일상생활에서 빛이라는 개념을 자연스럽게 받아들이고 있습니다. 하지만 막상 "빛이란 무엇인가요?" 라는 질문을 누군가 하게 된다면 명확하게 대답할 수 있는 사람은 드물 것입니다. 하물며 아인슈타인만 해도 다음과 같이 말했다고 하죠[3].

나의 여생동안 빛이 무엇인지 되집어 보며 살 것이다 - 1917 년경
지난 50 여년 동안 곱씹어 고민해 왔음에도 빛이란 무엇인가에 대한 답에 더 가까이 다가서지 못했다. 물론 장난꾸러기같은 사람들은 답을 안다고 생각하겠지만 그들은 자신을 속이고 있는 것이다 - 1951 년.

아인슈타인이 양자론과 관련한 연구성과를 인정하고 싶지 않아서 한 말일 것이라 생각하기는 하지만, 어쨌든 빛이란 무엇인가에 대한 질문에 대답하는 것이 쉽지 않은 것만은 사실입니다. 여기에서 빛의 입자성과 파동성에 대해서 이야기하기에는 너무 주제가 무거워지기 때문에 단순하게 파동성과 관련한 부분에 대해서만 언급하도록 하겠습니다.

빛이라는 것은 기본적으로 전자기파( Electromagnetic wave )라고 할 수 있습니다. 전자기파라는 것은 전자기적 과정에 의해 발생하는 에너지입니다. 그냥 파동의 형태로 발산되는 에너지라고 이해하시면 됩니다. 빛이라는 것은, 수소원자같이 개별적으로 셈을 할 수 있는 입자가 아니라, 파장이 다른 여러 가지 전자기파로 구성되어 있습니다[4].

그림1. 전자기파의 스펙트럼[4].

좁은 의미로 봤을 때, 빛은 그림1 의 가시 영역을 의미합니다. 넓은 의미로 봤을 때, 빛은 그림1 의 전체 영역을 의미합니다. 우리가 볼 수 없는 많은 부분이 존재하고, 다들 적외선( IR, Infrared Rays )이나 자외선( UV, Ultra Violet )같은 이름에는 익숙할 것입니다. 시리즈의 다음 글에 언급하겠지만, 이러한 관점의 차이가 광도측정( Photometry )과 방사측정( Radiometry )의 차이를 만듭니다.

빛이라는 것은 위에서도 말했듯이 파장이 다른 여러 개의 전자기파로 구성되어 있기 때문에 프리즘같은 것을 써서 각각의 파장을 분리해낼 수도 있습니다. 시리즈의 뒷편에서 언급하겠지만 이는 파장에 따라서 굴절률이 달라지는 것을 이용한 것이죠. 무지개도 이런 원리로 생성됩니다.

그림2. 빛이 프리즘을 통과하면서 파장에 따라서 분리되는 현상을 보여줍니다[4].

눈치가 빠른 분들이라면 그림2 에서 각 색깔별로 파장의 길이가 다르다는 것을 눈치채실 수 있을 겁니다. 빨간색의 파장의 길이가 가장 길고, 보라색의 파장의 길이가 가장 짧습니다. 일단 여기에서는 빛이라는 것이 하나의 색상을 가지는 것이 아니라 여러 전자기파의 조합이라는 것만 이해하시면 됩니다.

그런데 인간은 어떻게 이러한 빛을 인지할 수 있는 것일까요?

우리는 빛을 어떻게 인지할까

그림3. 인간의 눈 구조. 출처: Encyclopedia Britannica, 1994.

인간의 눈에 있는 망막( Retina )을 확대해 보면 원추세포( cone cell : blue cone, red cone, green cone )와 간상세포( rod )라는 것이 있습니다. 원추세포는 색상을 감지하고 간상세포는 명암을 감지합니다. 원추세포는 그것을 구성하고 있는 감광세포의 종류에 따라 받아들일 수 있는 색상이 정해져 있죠. 그림3 을 보시면 세 종류의 원추세포가 존재하며, 그것의 색상이 RGB 라는 것을 알 수 있습니다. 이를 빛의 3원색이라 하고 실제로 텍스쳐( texture )를 만들 때도 RGB 를 사용하게 됩니다. RGB 채널을 사용하는 것은 어느날 갑자기 그렇게 하기로 결정된 것이 아닙니다. 인간의 눈과 관련이 있는 것입니다.

간상세포는 약 9000 만개이고 원추세포는 약 600 만개인데, 간상세포는 약한 빛에도 반응하고 원추세포는 일정 세기의 빛에 반응합니다[7]. 결과적으로 인간의 눈은 색상대비보다 명도대비에 더욱 민감하다고 할 수 있습니다.

대부분의 포유류들은 인간보다 적은 개수의 감광색소를 가지고 있다고 합니다. 반면에 새들의 경우에는 감광색소를 더 가지고 있어서 자외선까지 볼 수 있다고 합니다. 앞에서 언급한 가시광선이라는 것은 인간의 관점에서의 가시광선이라는 것이죠. 그러므로 새들은 인간보다 좀 더 다채로운 세상을 볼 수 있고 벌레를 쉽게 발견할 수 있다고 합니다.

그림4. 인간과 새가 인지할 수 있는 파장 비교[6].

좀 더 직관적으로 이해할 수 있도록 예를 들면 인간과 새가 보는 차이는 다음과 같습니다.

그림5. 인간과 새가 보는 색상의 차이[6].

그림5 에서 알 수 있듯이 인간의 눈에는 비슷해 보이는 색상이 새의 눈에는 확연하게 차이가 날 수 있습니다. 노란색 꽃에 노란 벌레가 앉아 있을 때. 인간은 둘을 구별하지 못하지만, 새의 입장에서는 그 차이가 명확하게 보일 수도 있는 것이죠.

인간의 눈에 있는 원추세포가 가장 민감하게 반응하는 구간이 녹색과 인접해 있어 인간은 녹색빛을 가장 멀리서도 인지한다고 합니다. 그리고 원추세포에 이상이 생기면 색맹이 된다고 합니다[7].

정리

빛은 다양한 파장을 가진 전자기파의 집합이며, 인간의 그중 가시영역의 파장을 가진 전자기파( 가시광선 )들만 인지할 수 있습니다. 그런데 인간의 눈은 RGB 의 조합으로 색상을 인지하게 되며, 이것은 우리가 빛의 3 원색을 사용하게 되는 근간이 되었습니다.

참고자료

[1] Physically based rendering, Wikipedia.

[2] Basic Theory Of Physically-Based Rendering, Marmoset.

[3] 빛이란 무엇인가? Barray R. Marsters.

[4] Light, Wikipedia.

[5] 파동의 표시, 더불어 생각하는 과학 교실.

[6] Color Vision in Birds.

[7] 원추세포, 위키백과.

+ Recent posts