[Memo] Real-Time Rendering Ch.9
독서 메모 - Real-Time Rendering

· 6 min read
Chapter 9. Physically Based Shading #
9.1. 빛을 위한 기본적인 물리학 #
빛(Light): 전자기 횡파(Electromagnetic transverse wave). 전기장과 자기장이 빛의 진행 방향과 수직이자, 상호간에도 수직인 방향으로 진동하는 형식. 그들 간의 길이 비율은 고정되어 있으며, 위상 속도와 비례.
파장에 따라 서로 다른 위상 속도를 가지며, 단일 파장의 전자기파 만으로 구성된 빛은 단색광(monochromatic light)으로, 여러 파장의 전자기파로 구성된 빛은 다색광(polychromatic light)으로 부른다.
일반적인 물리 세계에서의 빛은 거의 다색광이나, 단색광의 형태가 이해하기 간단하며, 동시에 다색광도 그를 구성하는 각각의 파장을 분해해 단색광의 모음으로 표현할 수 있다.
또한, 빛의 진행 상태를 한 점에서 고정했다고 가정할 때, 전기장과 자기장이 특정한 선을 따라 진행된다면 선형 편광(linearly polarized)되어 있다고 말할 수 있는데, 일반적인 빛은 둘의 진행이 전파 축에 수직인 ‘모든 방향’에 걸쳐 균등하게 분포된다.
위상 속도(Phase velocity): 임의의 빛(light wave)이 진행되고 있을 때, 해당 파의 임의의 한 지점(예를 들면, 진폭의 마루 지점)을 추적할 경우 해당 점이 동일한 속도로 이동하는 것을 볼 수 있고, 이 때의 속도를 위상 속도라 함. 참고로 이 점은 빛의 진행 방향과 평행하게 움직이며, 진공 상태에서 빛의 위상 속도는 약 300,000km.
빛은 에너지를 운반하는데, 이 때 에너지의 크기는 전기장과 자기장의 크기의 곱이며, 빛을 구성하는 전기장과 자기장의 크기는 서로 비례하므로 사실상 전기장의 제곱이라고 볼 수 있다. 전기장이 자기장보다 물질에 더 강한 영향을 미치기 때문에 렌더링에서는 전기장에 집중하는 경향이 있으며, 동시에 시간에 따른 평균 에너지 흐름에 집중한다. 이는 파동 진폭의 제곱에 비례한다. 이러한 에너지 흐름 밀도의 평균이 조도(irradiance)이며, 일반적으로 E 로 표기한다. *참고. 조도는 8장에서 단위 면적당 입사되는 빛의 양으로 정의했었는데, 이 때 ‘면적’이 입사되는 에너지의 밀도를 대표할 수 있다.
광파(light wave)는 선형적으로 결합되는데, 이러면 조도의 정의와 충돌하는 것 같이 보일 수 있다. 예컨대, 임의의 파동 $a$가 있고 그의 조도가 E일 때 a 두개를 합치면 그 크기는 $2a$가 되고, 조도는 $(2a)^2 = 4E$가 된다. 근데 E를 ‘에너지’의 관점에서 보면, 임의의 에너지 $e_1$과 $e_2$의 합은 에너지 보존 법칙에 따라 $e_1 + e_2$를 넘을 수 없다(다를 수 없다 가 아닌 이유는, 에너지가 흐르는 과정에서 손실되는 것 처럼 보이는 현상이 발생할 수 있기 때문이다). 근데 $E + E = 4E$가 되고 있기 때문이다.
결론적으로, 때때로 $E + E$ 가 4E 인 것처럼 보일 수 있다. 특정 지점에서는. 하지만 빛의 모든 에너지 흐름을 추적할 때, 다른 어느 지점에서는 $E + E$가 0이 되는 현상도 나타날 수 있고, 이러한 것들을 종합할 때 에너지 크기는 2E임이 자명하다. 즉, 에너지 보존 법칙을 위배하지 않는다. $E$ + $E$가 $4E$가 되는 지점의 현상을 보강 간섭(constructive interference)이라 하고, $E + E$가 0이 되는 지점의 현상을 상쇄 간섭(destructive interference)이라 한다.
임의의 물질 내 전하가 진동할 때, 그 진동을 야기한 에너지의 일부가 빛 에너지로 전환되어 방출된다. 이처럼 빛 에너지를 방출하는 임의의 물체를 렌더링에서는 광원(light source)이라 한다.
광원에서 방출된 빛이 공간을 통과해 다른 물질과 상호작용하게 되면, 해당 물질 내 전하가 빛 에너지에 의해 밀고 당겨지며(즉, 진동하며) 새롭게 빛을 방출한다. 이 때 방출되는 빛은 입사된 빛의 파장과 동일한 파장을 가지며, 그 방향은 입사 방향과 항상 같지 않다(또한, 다색광을 기준으로 빛을 구성하는 각 파장은 해당 물질과 별도로 상호작용한다). 그러나 대체로 입사 방향의 앞뒤로 방출되는 경향을 보이며, 파장이 짧을 수록 산란이 효과적으로(즉, 강하게) 일어나는 경향이 있다. 이것이 레일리 산란이며, 이 떄문에 가시광선 중 상대적으로 단파인 파랑색이 하늘의 색을 구성하는 것이다.
9.1.1 입자(Particle) #
입자(파티클): 단일 분자, 혹은 다분자 클러스터. 빛이 입자와 상호작용하며 입자 내의 전자를 진동시키며 산란을 일으키는데, 이는 분자들이 뭉친 클러스터에도 동일하게 발생. 빽빽하게 모인 다분자 클러스터는 구성 분자들이 동일한 파장의 산란을 일으키며 보강 간섭을 일으키고, 그 결과 분자의 밀도가 유지될 때 클러스터가 커질수록 산란의 세기가 quadratic하게 증가함(제곱). 이 때 클러스터의 지름이 파장보다 커지는 순간부터 더 이상 클러스터가 커져도 산란의 세기가 증가하지 않음.
9.1.2. 매질(Media) #
진공 상태가 아닌 한 임의의 공간은 그것을 구성하는 입자들의 집합으로 볼 수 있다. 입자는 결국 하나의 분자, 혹은 여러 분자들의 집합이므로, 공간은 분자들의 집합과 동치이다. 빛이 해당 공간에서 진행될 때, 에너지 관점에서 이 공간을 ‘매질’이라고 부른다. 매질 안의 분자들이 빛과 상호작용하며, 그 과정에서 전달, 산란이나 흡수 등이 발생하게 되는 것이다. 매질 안의 분자들이 균일하게 위치해 있다면(혹은 대체로 균일하다면) 이를 균일 매질이라 부르고, 그렇지 않을 경우 비균일 매질이라고 부르는데, 균일 매질의 대표적인 예시가 ‘이상 기체’이다. 아무튼, 균일 매질에서는 분자들이 규칙적으로 배열(이는 밀도가 고르다는 말과 같다)되어 있기 때문에 빛의 상호작용에 의해서 방출되는 파장들이 기존 빛의 진행방향과 동일하게 정렬되는 모습을 보이며, 다른 방향의 빛들은 상쇄 간섭에 의해 억제되는 모습을 보인다. 따라서 산란이 일어나지 않는 것처럼 보인다. 반면, 비균일 매질에서는 분자의 배열이 규칙적이지 않기 때문에 보다 다양한 방향으로 빛이 방출되고, 이는 결국 산란이 일어나는 것 처럼 보이게 된다. 이러한 현상을 기준으로 보면, 비균일 매질은 균일 매질이 국지적으로 산란 분자를 포함하고 있는 것과 비슷하게 모델링될 수 있다.
9.1.3. 표면(Surface) #
9.1.4. 표면하 산란(Subsurface Scattering) #
입사 과정에서 굴절된 빛은 물질 내부에서 지속적으로 상호작용함. 이 때 물질에 따라 상호작용의 진행 형태가 다른데, 금속의 경우 대부분이 반사되며, 굴절되어 물질 내부로 진입한 대부분의 빛은 빠르게 흡수됨. 반면, 비금속 물질은 매우 다양한 산란/흡수가 나타남(컵 안의 액체를 상상해 보라). 산란과 흡수가 적게 일어나는 물질은 투명(Transparent)에 가까워지고, 이는 대부분의 빛이 물질 밖으로 재방출(re-emit)될 때까지 끊임없이 산란 및 흡수가 일어난다는 뜻이다.
이러한 물질 내부에서의 산란을 표면하 산란(Subsurface Scattering, 말 그대로 표면 아래에서 일어나는 산란)이라 하고, 표면하 산란을 거친 빛은 빛이 진입(entry)한 지점과 다른 위치에서 방출(exit)될 수 있다. 이러한 진입-방출 지점의 거리 차이는 물질 내부의 입자 구성, 밀도 등에 따라 달라지며, 렌더링 관점에서는 이 거리 차이와 쉐이딩 스케일의 관계가 매우 중요하다. 쉐이딩 스케일은 카메라의 위치에 따른 물체와의 거리 등을 지칭하지만 쉽게 표현하면 한 픽셀에 어느 정도의 시각 정보가 담기는지에 대한 것이다. 만약 광선이 진입한 지점과 방출 지점이 한 픽셀의 크기보다 작다면(이를 Local Subsurface Scattering이라 한다), 표면하 산란에 의한 효과는 사실상 0에 가깝다고 볼 수 있다(그냥 Diffuse항으로 처리하면 그만이기 때문이다). 그러나 광선의 진입-방출 지점의 거리 차이가 픽셀 하나의 크기보다 크다면(이를 Global Subsurface Scattering이라 한다). 단순히 한 픽셀 내에서 입사각과 머티리얼 파라미터 만으로 계산할 수 없으며, 별도의 렌더링 테크닉을 필요로 하게 된다.
중요한 건, 이러한 구현상의 복잡도 차이에도 불구하고 둘의 물리적 현상은 완전히 같다는 것이다. 쉐이딩 스케일이 중요하다고 상술했던 또 하나의 이유인데, 만약 임의의 씬에서 카메라와 상대적으로 가까이 있는 물체에서 발생한 전역 표면하 산란이 있다고 가정할 때, 카메라가 뒤로 충분히 이동한다면 이 표면하 산란의 진입-방출 거리가 한 픽셀 거리 이하로 감소할 수 있다(멀어진 만큼 물체의 크기 자체가 작아졌을 테니). 이 때는 동일하게 발생하는 표면하 산란 현상을 지역적(Local)으로 간단히 처리할 수 있을 것이며, 그 역도 성립할 것이다.
9.2. 카메라 #
9.3 BRDF #
PBR의 궁극적인 목표는 임의의 광선들을 통해 카메라(V)로 들어오는 모든 빛의 양을 측정 및 표현하는 것이다. 앞선 BRDF(Bi-directional Reflectance Distribution Function, 양방향 반사 분포 함수)는 임의의 표면 지점에 입사한 빛들 중 어느 정도의 빛이 카메라(V)에 반사되어 도달하는지 그 비율을 나타내는 함수이다. 즉 지역 조명(Local Illumination)을 표현하는 함수이다.
BRDF에서 중요한 항목 2가지: 헬름홀츠 상호성과 에너지 보존 법칙. 물리적으로 정확한 BRDF는 이 두 규칙을 위배하지 않는다. 헬름홀츠 상호성(Helmholtz reciprocity)은 입사각과 반사각이 반대로 바뀌더라도 반사율이 동일함을 의미하며, 에너지 보존 법칙(Conservation of Energy)은 방출된 에너지가 들어오는 에너지보다 클 수 없다는 것을 의미한다(흡수 등의 에너지 손실 과정을 통해 더 작아질 수는 있다)