주의 : 잘못된 내용이 포함되어 있을 수 있으므로 이상하면 참고자료를 확인하세요.


[ PBR 이란 무엇인가 ] 16. Reflection 에 대한 잘못된 상식들

사전적 의미

우리는 일상적으로 diffuse reflection( 확산방사 ) 과 specular reflection( 정반사 ) 이라는 용어를 사용합니다. 그런데 정말로 그 의미를 알고 사용하고 계시나요?

일단 diffuse 의 사전적인 의미를 살펴 보도록 하겠습니다.

1. ( 빛, 열, 냄새 따위를 ) 발산[ 방산( 放散 ) ]하다.

2. ( 지식을 ) 넓히다, 보급시키다, ( 정서 따위를 ) 충만시키다.

3. [ 理 ] ( 기체나 액체를 ) 확산( 擴散 )시키자; [ 理 ] ( 빛을 ) 산란시키다.

출처 : 네이버 사전.

여러분이 알고 있는 뜻과 일치하나요?

이제 specular 의 사전적 의미도 살펴 보도록 하겠습니다.

1. 거울 같은, 비추는, 반사하는, 반영하는

2. ( 광학 ) 정( 正 )반사성의

출처 : 네이버 사전.

이것도 여러분이 알고 있는 뜻과 일치하나요?

이제 저런 사전적인 의미가 실제적인 의미와 얼마나 일치하는지 살펴 보도록 합시다.

Diffuse 반사는 표면의 거칠기 때문에 발생한다?

많은 분들이 diffuse reflection 이 표면의 거칠기 때문에 발생한다고 생각합니다. 특히 PBR 에 있어 중요한 요소인 미세면( microfacet )을 생각하면 그렇게 생각하는 것도 당연합니다. 하지만 diffuse 는 대부분 표면의 거칠기 때문에 발생하는 것이 아닙니다. 물론 일부는 그렇게 발생합니다.

사전적인 의미로 봤을 때 diffuse 는 "발산", "확산" 이라는 의미를 가지고 있습니다. 즉, 단순하게 표면에 부딪혀서 반사되어 나오는 요소가 아니라는 의미입니다.

[ 1 ] 에 의하면, diffuse 가 발생하는 원리는 다음과 같습니다. 글의 일부를 번역해 보았습니다.

Solids( 인공물 )에서  diffuse reflection 은 일반적으로 표면의 거칠기 때문에 발생하지 않습니다. 물론 평평한 표면에서 specular reflection 이 발생하지만, 그렇다고 해서 그것이 diffuse reflection 이 발생하는 것을 막지는 않습니다. 하얀 대리석을 매우 연마( polishing )해도 하얀색은 남습니다; 아무리 연마를 해도 그것이 거울이 되지는 않습니다. 연마는 약간의 specular reflection 을 산출하지만, 나머지 빛은 여전히 확산되게 반사됩니다.

어떤 표면이 diffuse reflection 을 제공하는 가장 주요한 원리에서, 그것은 정확하게는 표면이라는 개념을 포함하고 있지 않습니다: 대부분의 빛은 아래 그림에서 보이는 것처럼 표면 아래 존재하는 scattering center( 산란 센터, 역주 : 전자기파가 산란되는 곳 )들의 영향을 받습니다.

물론 매우 일부이기는 하지만 산란없이 diffuse reflection 을 보여 주는 경우는 존재합니다. 아래 그림처럼 표면 아래로 빛이 흡수되지는 않았는데 그 표면이 매우 거칠어서 여러 반향으로 반사가 되었다면 그것도 현상적으로 봤을 때는 diffuse 라고 이야기할 수 있겠죠.

비균일 표면으로부터의 diffuse reflection. 출처 : [ 1 ].

굳이 이러한 원리에 대해서 이야기하는 이유는 무엇이라 생각하시나요? "쓰는 사람 입장에서 그러든지 말든지 상관없잖아요?" 라고 하시는 분들 계실 수도 있습니다.

하지만 이 이야기를 하는 이유는 albedo( 반사율 ) 에 대해서 이야기하기 위함입니다. 우리가 흰색 빛을 물체에 쐈을 때 사과는 붉은색으로 보이고( 물론 녹색 사과도 있지만 딴지는 걸지 말아 주세요 ㅠㅠ ), 나뭇잎은 녹색으로 보입니다. 보통 이에 대해서 설명할 때 붉은색을 반사했다고 표현하는데, 사실은 표면 아래도 들어가 산란이 일어나면서 일부 파장을 흡수하고 나머지 파장이 방출된 것입니다.

자! 그럼 그냥 표면에서 반사해 버린 빛과 표면 아래에서 산란시켜서 반사해 버린 빛의 차이가 보이나요? Specular reflection 은 반사되었을 때 자신의 빛의 파장을 그대로 유지하지만, diffuse reflection 은 재질의 구성에 따라서 반사되었을 때 자신의 빛의 파장을 유지하지 못합니다. 그러므로 specular reflection 은 빛의 색을 그대로 유지하고 diffuse reflection 은 빛의 색을 유지하지 못하는 것입니다.

일반적인 경우에 표면 아래에서의 산란을 계산하기에는 너무 복잡하고 계산비용이 비쌉니다. 그래서 이를 albedo 라는 개념으로 퉁치는 거죠. 

그런데 여기에서 한가지 의문이 들 수 있습니다. 왜 specular 도 albedo 의 영향을 받느냐는 겁니다. 실제로 UE4 같은 엔진을 사용해 보면 Yellow( = Red + Green ) 라이트를 Green 재질에다가 쐈을 때 specular 성분에 순수한 Green 색상이 포함됩니다. 그냥 순수한 Yellow 가 나와야할 것 같은데 말이죠... 그 이유는 위의 위키피디아 글에서도 언급되어 있듯이 평평한 면이라고 하더라도 diffuse 를 막을 수 없기 때문입니다. 세상에는 순수하게( 혹은 이상적으로 ) 매끈한 평면이란 존재하지 않습니다. 이 부분은 Fresnel 과 관련이 있는데 나중에 자세히 다루도록 하겠습니다.

모든 물체는 diffuse reflection 을 가진다?

그렇지 않습니다. 금속( metal ), 빛이 들어갈 수 없는 물질, 개스( gas ), 액체( liquid ), 유리( glass ), 투명 플래스틱( transparent plastic ), 일부 보석( gem )들이나 소금 결정( salt crystal )과 같은 단결정( single crystal ) 물질들, 그리고 티슈( tissue )나 수정체( lens of a eye ) 같은 매우 특별한 재질들은 diffuse reflection 을 가지지 않습니다[ 1 ].

사실 이러한 재질들에 대해서 모두 설명하는 것은 어렵기 때문에 우리가 가장 흔하게 접하게 되는 금속에 대해서만 설명을 드리도록 하겠습니다.

금속은 모든 빛을 흡수합니다. 즉 albedo 는 0 이라고 할수 있습니다. 그런데 어떻게 반사가 생기는 걸까요? 금속 내부의 자유전자는 에너지를 받으면 아래 그림처럼 방출됩니다. 그래서 금속은 자신을 구성하고 있는 원자에 따라서 고유의 색상을 가지게 되는 거죠.

금속의 반사의 본질.

그러면 금속은 어느 방향으로 반사를 시킬까요? 여기에서 구체적으로 언급하지는 않겠지만 그것은 Fresnel 과 관련이 있습니다. 나중에 자세하게 다루도록 하겠습니다. 

Specular reflection 은 입사각과 반사각이 같을 때 가장 세다?

우리는 일반적으로 거울면 반사, 즉 정반사는 입사각과 반사각이 같을때 가장 세다고 알고 있습니다. 하지만 그것은 사실이 아닙니다. 이는 표면의 roughness 에 따라 달라집니다. 이 역시 Fresnel 과 관련이 있습니다. 이 역시 나중에 자세하게 다루도록 하겠습니다.

어쨌든 일반적인 재질에서 specular 는 거울면 반사를 하지 않고 약간 벗어나서 반사를 합니다. 이를 off-specular reflection 이라 부릅니다. 가장 센 곳을 off-specular peak 라고 부르죠. 굳이 우리말로 번역하자면 "정반사를 벗어난 반사" 정도 되겠습니다.

Off-specular reflection 의 예: 지표각에 가까워질수록 specular 방향( M )이 정반사의 각과 달라짐. 출처 : [ 2 ].

참고자료

[ 1 ] Diffuse reflection, Wikipedia.

[ 2 ] A Reflectance Model for Computer Graphics, Robert L. Cook and Kenneth E. Torrance.

+ Recent posts