작성일 :

셰이더가 모방하는 물리 현상

조명과 그림자 (1) - 실시간 조명과 베이크에서는 라이팅 방식에 따른 비용 차이를, 셰이더 최적화 (1) - 셰이더 성능의 원리에서는 셰이더 내부의 연산 비용을 다루었습니다.

두 시리즈 모두 “조명 계산”과 “표면 셰이딩”이 GPU에서 어떻게 처리되는지에 초점을 맞추었지만, 그 계산의 기반이 되는 빛 자체의 물리적 성질은 별도로 다루지 않았습니다.


셰이더가 수행하는 조명 계산은 현실의 빛 현상을 근사한 것입니다.

빛이 물체 표면에 닿으면 일부는 반사되고, 일부는 물체 내부로 들어가며, 일부는 흡수되어 열로 바뀝니다. 물체가 어떤 색으로 보이는지, 표면이 반짝이는지 무광인지, 유리처럼 투명한지 불투명한지는 모두 이 세 가지 현상의 비율에 따라 결정됩니다.

셰이딩 모델은 이 물리적 현상을 수학 수식으로 옮긴 것입니다. 수식의 각 항이 어떤 물리적 현상에 대응하는지를 파악해야 파라미터의 의미를 정확히 이해할 수 있습니다.


이 시리즈는 그 기반을 다룹니다.

빛이 물리적으로 어떤 존재인지, 표면과 만났을 때 어떤 현상이 일어나는지, 그리고 게임 그래픽스에서 이 현상들을 어떤 수학적 형태로 표현하는지를 다룹니다.

이 원리를 이해하면 셰이딩 모델이 왜 특정 수식을 사용하는지, PBR에 왜 에너지 보존이 필요한지를 자연스럽게 이해할 수 있습니다.


이 첫 번째 글에서는 빛의 본질인 전자기파부터 시작하여, 표면과의 상호작용(반사, 굴절, 흡수), 이 세 현상을 제약하는 에너지 보존 법칙, 그리고 이 현상들을 하나의 수학적 프레임워크로 통합하는 BRDF 개념까지 순서대로 다룹니다.


빛이란

빛은 전자기파(Electromagnetic Wave)의 일종입니다.

전자기파를 이해하려면 먼저 전기장(Electric Field)자기장(Magnetic Field)을 알아야 합니다.

전하(Electric Charge)란 물질이 띠는 전기적 성질로, 양전하와 음전하가 있습니다.

전기장은 이 전하가 주변 공간에 미치는 힘의 영역이고, 자기장은 움직이는 전하(전류)가 주변에 만드는 힘의 영역입니다.

전자기파는 이 두 장이 서로 수직 방향으로 진동하면서 진공 속에서 초속 약 3억 m(약 30만 km/s)로 전파되는 파동입니다.

라디오파, 마이크로파, 적외선, 가시광선, 자외선, X선, 감마선은 모두 전자기파이며, 파장(Wavelength)의 범위에 따라 구분됩니다.


전자기파 스펙트럼 라디오파 마이크로파 적외선 가시광선 자외선 X선 감마선 긴 파장 짧은 파장 인간의 눈이 감지하는 영역
영역 파장
라디오 ~1m
마이크로파 ~1mm
적외선 ~1μm
가시광선 380~780nm
자외선 ~10nm
X선 ~0.1nm
감마선 <0.01nm


인간의 눈이 감지할 수 있는 전자기파의 범위가 가시광선(Visible Light)이며, 파장은 약 380nm에서 780nm 사이에 걸쳐 있습니다. 이 범위 안에서 파장이 짧은 쪽(약 380nm)은 보라색으로, 긴 쪽(약 780nm)은 빨간색으로 인식됩니다.


가시광선 스펙트럼 보라 남색 파랑 초록 노랑 주황 빨강 380 430 470 530 580 600 700 780 (nm) 짧은 파장 · 높은 에너지 긴 파장 · 낮은 에너지


태양빛이나 형광등에서 나오는 백색광(White Light)은 단일 파장이 아니라 가시광선 전 범위의 파장이 섞여 있는 빛입니다. 프리즘에 백색광을 통과시키면 파장별로 굴절 각도가 달라져 무지개색으로 분리되는 현상이 이를 보여줍니다.


게임 그래픽스에서 빛의 색상은 파장 단위가 아니라 RGB(Red, Green, Blue) 세 채널의 값으로 표현됩니다.

이 변환이 가능한 이유는 인간의 눈 망막에 빨강, 초록, 파랑 파장대에 각각 반응하는 세 종류의 원추세포(Cone Cell)가 존재하기 때문입니다. 원추세포는 S(Short, 약 420nm), M(Medium, 약 530nm), L(Long, 약 560nm) 세 유형으로 나뉘며, 각각 파랑, 초록, 빨강 파장대에 가장 민감하게 반응합니다.


인간이 색을 구분하는 방식은 세 종류의 원추세포가 각각 얼마나 자극되느냐에 달려 있습니다.

파장 조합이 전혀 다른 두 빛이라도, 세 원추세포를 같은 비율로 자극하면 뇌는 같은 색으로 인식합니다.

이 원리 덕분에 빨강, 초록, 파랑 세 원색의 밝기만 조절해도 인간이 지각하는 대부분의 색을 재현할 수 있습니다.

RGB 색 모델의 구조, 채널 비트 깊이, 가산 혼합 원리는 색과 빛 (2) - 색 표현과 색공간에서 구체적으로 다룹니다.


반사 (Reflection)

빛이 물체의 표면에 닿으면 일부는 표면에서 되돌아옵니다. 이 현상이 반사(Reflection)입니다.

반사의 방식은 표면의 거칠기에 따라 크게 두 가지로 나뉩니다.


정반사 (Specular Reflection)

표면이 매끄러울 때, 입사한 빛은 표면 법선(Normal, 표면에 수직인 방향)을 기준으로 대칭인 방향으로 반사됩니다.

이 현상이 정반사(Specular Reflection)입니다. 거울, 금속 표면, 잔잔한 수면에서 관찰할 수 있습니다.

반사 방향이 일정하므로, 관찰자가 반사광 경로에 놓일 때만 밝은 빛이 보입니다. 게임에서 오브젝트 표면에 나타나는 밝은 하이라이트(Specular Highlight)가 정반사를 표현한 것입니다.


정반사 (Specular Reflection) 매끄러운 표면 입사점 N 입사광 반사광 θ θ 반사각 = 입사각 · 반사 방향이 하나로 결정됨


정반사는 반사 법칙(Law of Reflection)을 따릅니다. 입사광과 법선이 이루는 각(입사각)과 반사광과 법선이 이루는 각(반사각)은 항상 같고, 입사광·법선·반사광 세 방향은 같은 평면 위에 놓입니다.

난반사 (Diffuse Reflection)

표면이 거칠면, 표면의 미세한 요철 때문에 각 지점의 법선 방향이 제각각입니다.

입사한 빛이 여러 방향으로 흩어져 반사되는데, 이를 난반사(Diffuse Reflection)라 합니다. 종이, 나무, 콘크리트, 피부 같은 표면에서 볼 수 있습니다.


난반사 (Diffuse Reflection) 미세한 요철 입사광 빛이 모든 방향으로 고르게 분산됨 → 어느 각도에서 봐도 밝기가 비슷함


이처럼 난반사에서는 관찰 방향에 따른 밝기 차이가 거의 없습니다.


Lambert 표면은 이 성질을 이상적으로 모델링한 것으로, 밝기가 오직 입사광과 법선 사이의 각도에만 의존하고 관찰 방향에는 전혀 영향을 받지 않는 표면입니다.

Lambert 표면에서 밝기를 결정하는 것은 입사각의 코사인(cos) 값입니다.

같은 폭의 빛줄기가 표면에 수직으로 닿으면 좁은 면적에 에너지가 집중되지만, 비스듬히 닿으면 넓은 면적에 퍼져 단위 면적당 에너지가 줄어듭니다.

빛이 표면에 수직으로 들어올수록(입사각이 0도에 가까울수록) 밝기가 최대이고, 비스듬할수록 cos 값이 작아지면서 밝기도 줄어듭니다.

색과 빛 (3) - 셰이딩 모델에서 다루는 Lambert 셰이딩이 이 원리를 수식으로 구현한 것입니다.

현실의 표면

현실의 대부분의 물체는 정반사와 난반사가 혼합된 형태로 빛을 반사합니다.

플라스틱은 난반사가 지배적이지만 표면 코팅층에서 약한 정반사가 섞이고, 금속은 반대로 정반사가 지배적이지만 산화되거나 흠집이 있는 부분에서 난반사가 나타납니다.

셰이딩 모델은 이 혼합 비율을 파라미터로 조절하여 다양한 재질을 하나의 수식으로 표현할 수 있습니다.


정반사와 난반사의 혼합 순수 난반사 (종이, 분필) Diffuse 100% Specular 0% 혼합 (플라스틱, 나무) 순수 정반사 (거울, 금속) Specular 100% Diffuse 0% 거칠기 높음 거칠기 낮음

굴절 (Refraction)

반사가 빛이 표면에서 되돌아오는 현상이라면, 굴절(Refraction)은 빛이 서로 다른 매질의 경계를 지날 때 진행 방향이 꺾이는 현상입니다. 여기서 매질(Medium)이란 빛이 이동하는 물질 — 공기, 물, 유리 등 — 을 뜻합니다.

굴절이 일어나는 원인은 매질마다 빛의 전파 속도가 다르기 때문입니다. 빛은 공기 중에서 빠르게 이동하지만, 물이나 유리처럼 밀도가 높은 매질에서는 느려집니다.

빛이 비스듬히 매질 경계에 도달하면, 파면(wavefront)에서 경계를 먼저 지나는 쪽이 먼저 속도가 바뀌고, 나머지 부분은 아직 원래 속도로 진행합니다. 이 속도 차이로 파면 전체가 회전하듯 휘어지면서 진행 방향이 꺾입니다. 물속에 빨대를 넣으면 꺾여 보이는 현상이 굴절의 대표적인 예입니다.


스넬의 법칙

굴절의 정도는 두 매질의 굴절률(Index of Refraction, IOR)에 의해 결정됩니다.

굴절률은 진공에서의 빛의 속도(c)를 해당 매질에서의 빛의 속도(v)로 나눈 비율(n = c / v)입니다.

진공의 굴절률이 1.0이므로, 굴절률이 1보다 큰 매질에서는 빛이 진공보다 느리게 진행합니다. 예를 들어 물의 굴절률이 1.33이라는 것은, 물속에서 빛의 속도가 진공의 약 75%(1 / 1.33)라는 뜻입니다.


주요 물질의 굴절률 (IOR)

물질 굴절률
진공 1.0
공기 1.0003
1.33
유리 1.5
다이아몬드 2.42


스넬의 법칙(Snell’s Law)은 굴절각을 계산하는 공식입니다.


\[n_1 \sin\theta_1 = n_2 \sin\theta_2\]
  • $n_1$: 입사 매질의 굴절률
  • $n_2$: 굴절 매질의 굴절률
  • $\theta_1$: 입사각 (입사광과 법선 사이의 각도)
  • $\theta_2$: 굴절각 (굴절광과 법선 사이의 각도)
매질 경계 매질 1 (n₁, 예: 공기) 매질 2 (n₂, 예: 유리) 입사광 θ₁ 굴절광 θ₂ n₂ > n₁ → θ₂ < θ₁ (법선 쪽으로 꺾임) · n₂ < n₁ → θ₂ > θ₁ (법선에서 멀어짐)


굴절률이 높은 매질로 빛이 진입하면 빛의 속도가 느려지면서 법선 방향으로 꺾이고, 반대로 낮은 매질로 나가면 법선에서 멀어지는 방향으로 꺾입니다.

굴절률 차이가 클수록 꺾이는 각도도 커집니다. 다이아몬드(IOR 2.42)처럼 굴절률이 높은 물질에서는 빛이 내부에서 여러 번 꺾이며 독특한 광채를 만듭니다.

프레넬 효과 (Fresnel Effect)

프레넬 효과(Fresnel Effect)는 매질 경계에서 반사와 굴절(투과)의 비율이 입사 각도에 따라 달라지는 현상입니다.

표면에 수직으로 입사할 때 반사가 가장 적고, 비스듬하게 입사할수록 반사 비율이 높아집니다.


프레넬 효과 정면에서 볼 때 (수직 입사) 법선 표면 매질 1 (공기) 매질 2 (유리 등) 입사광 반사 (약) 투과 (강) → 반사: 약함 / 투과: 강함 → 표면이 투명하게 보임 비스듬하게 볼 때 (수평 입사) 법선 표면 매질 1 (공기) 매질 2 (유리 등) 입사광 반사 (강) 투과 (약) → 반사: 강함 / 투과: 약함 → 표면이 거울처럼 보임


호수 위에서 수면을 정면으로 내려다보면 물속이 비교적 잘 보이지만, 먼 곳의 수면을 비스듬히 바라보면 하늘이 반사되어 비칩니다. 같은 수면인데 보는 각도에 따라 투명도가 달라지는 이 현상이 프레넬 효과의 일상적인 예입니다.


프레넬 효과는 모든 재질에서 발생하지만, 재질에 따라 변화의 폭이 다릅니다.

금속은 내부의 자유 전자가 입사광을 즉시 흡수하고 재방출하기 때문에, 정면 입사 시에도 반사율이 이미 50~90% 이상(철 약 56%, 은 약 95%)에 달합니다. 각도가 비스듬해져도 반사율이 이미 높은 상태에서 출발하므로, 변화 폭은 상대적으로 작습니다.

반면 비금속(유리, 물, 플라스틱)은 정면 입사 시 반사율이 2~5% 수준으로 낮았다가, 비스듬한 각도에서 급격히 100%에 가까워집니다. 정면과 가장자리의 반사율 차이가 크기 때문에 프레넬 효과가 뚜렷하게 드러납니다.


이 물리 현상은 게임 그래픽스에서도 그대로 적용됩니다.

오브젝트의 가장자리(실루엣)에서 반사가 강해지는 형태로 관찰되며, PBR(Physically Based Rendering, 물리 기반 렌더링) 셰이딩에서는 이 효과를 재현하는 프레넬 항(입사 각도에 따라 반사율을 조절하는 수식)이 기본으로 포함되어 있습니다.

프레넬 항이 빠지면 모든 각도에서 반사율이 동일해져 가장자리의 반사 강조가 사라집니다. 그 결과 플라스틱이든 유리든 표면이 균일하게 보이고, 재질 간 시각적 차이를 구별하기 어려워집니다.


프레넬 효과의 반사율 변화 반사율 0 1 90° 정면 입사 수평 입사 비금속 기준 약 2~5% 100%에 수렴


위 그래프의 곡선, 즉 입사각에 따라 반사율이 변하는 프레넬 커브를 수학적으로 근사한 것이 슐릭 근사(Schlick’s Approximation)입니다.

슐릭 근사는 정면에서 측정한 기본 반사율 $F_0$를 출발점으로, $(1 - \cos\theta)^5$ 항을 통해 입사각이 커질수록 반사율이 1.0에 수렴하는 곡선을 표현합니다.

빛의 편광까지 고려하는 원래의 프레넬 방정식은 s-편광과 p-편광 각각에 대해 삼각함수와 제곱근 연산이 필요하지만, 슐릭 근사는 내적 하나와 거듭제곱 하나로 계산됩니다.

계산량이 적으면서도 결과가 충분히 정확하므로, 실시간 렌더링에서 널리 사용됩니다.


흡수 (Absorption)

굴절 절에서 다룬 것처럼, 표면에 도달한 빛 중 반사되지 않은 부분은 굴절을 통해 물체 내부로 진입합니다.

내부로 들어간 빛의 일부는 물체를 구성하는 원자·분자의 전자를 들뜬 상태(excited state)로 끌어올리고, 이 에너지는 주변 원자들의 진동으로 전달되어 최종적으로 이 됩니다.

이렇게 빛 에너지가 열로 바뀌어 사라지는 현상이 흡수(Absorption)이며, 어떤 파장이 얼마나 흡수되는지는 물질의 분자 구조에 따라 달라집니다.


물체가 특정 파장의 빛을 흡수하고 나머지 파장을 반사(또는 투과)하면, 관찰자의 눈에는 흡수되지 않고 남은 파장만 도달합니다.

즉, 물체의 색은 흡수되지 않고 남은 파장이 결정합니다.


흡수와 색의 관계 백색광 (모든 파장 포함) 빨간 사과 파랑 흡수 초록 흡수 빨강 반사 눈에 빨간색으로 보임 흡수된 파장 → 운동 에너지(열)로 변환 / 반사된 파장 → 관찰자에게 도달


빨간 사과의 표면은 파랑과 초록 파장의 빛을 흡수하고, 빨간 파장의 빛을 난반사합니다. 관찰자의 눈에는 반사된 빨간 빛만 도달하므로 사과가 빨간색으로 보입니다.


흰색 물체는 모든 파장을 고르게 반사하고, 검은색 물체는 대부분의 파장을 흡수합니다. 검은색 옷이 햇빛 아래에서 더운 이유는, 빛 에너지의 대부분을 흡수하여 열로 변환하기 때문입니다.


색과 흡수/반사의 관계

물체 색 흡수하는 파장 반사하는 파장
빨강 파랑, 초록 빨강
초록 빨강, 파랑 초록
파랑 빨강, 초록 파랑
흰색 (거의 없음) 모든 파장
검정 모든 파장 (거의 없음)
노랑 파랑 빨강, 초록


게임 그래픽스에서 물체의 색은 머티리얼의 Albedo(또는 Base Color)로 설정됩니다.

Albedo는 물체가 각 파장(RGB 채널)의 빛을 얼마나 반사하는지를 0.0~1.0 범위로 나타낸 값입니다. 0.0은 해당 채널의 빛을 전부 흡수한다는 뜻이고, 1.0은 전부 반사한다는 뜻입니다.

Albedo가 (1, 0, 0)이면 빨간 빛만 반사하고 나머지를 흡수합니다. (1, 1, 1)이면 모든 빛을 반사하므로 흰색으로 보입니다.


빛의 색과 물체의 색은 함께 작용합니다.

빨간 Albedo를 가진 물체에 파란 빛만 비추면, 물체는 파란 빛을 흡수하고 반사할 빨간 빛이 입사되지 않으므로 어둡게(거의 검정에 가깝게) 보입니다. 셰이더에서는 조명 색상과 Albedo를 곱(multiply)하여 이 상호작용을 계산합니다.


조명 색상과 Albedo의 상호작용 (색상 필터링만 표현, 조명 각도에 따른 밝기 변화는 생략)

\[\text{반사 색상} = \text{조명 색상} \times \text{Albedo}\] \[\begin{aligned} \text{예시 1: 백색광 + 빨간 Albedo} \quad & (1,\;1,\;1) \times (1,\;0,\;0) = (1,\;0,\;0) \;\rightarrow\; \text{빨간색} \\[4pt] \text{예시 2: 파란 조명 + 빨간 Albedo} \quad & (0,\;0,\;1) \times (1,\;0,\;0) = (0,\;0,\;0) \;\rightarrow\; \text{검정} \\[4pt] \text{예시 3: 노란 조명 + 초록 Albedo} \quad & (1,\;1,\;0) \times (0,\;1,\;0) = (0,\;1,\;0) \;\rightarrow\; \text{초록색} \end{aligned}\]


이 곱셈이 흡수의 수학적 표현입니다. Albedo의 각 채널 값이 0에 가까울수록 해당 파장을 흡수하고, 1에 가까울수록 해당 파장을 반사합니다.


서브서피스 스캐터링 (Subsurface Scattering)

물체 내부로 진입한 빛이 모두 흡수되는 것은 아닙니다.

서브서피스 스캐터링(Subsurface Scattering, SSS)은 물체 내부로 들어간 빛이 흡수되지 않고 내부 입자에 부딪혀 방향을 바꾸며 이동하다가, 입사 지점과 다른 지점의 표면으로 빠져나오는 현상입니다. 피부, 대리석, 밀랍, 우유처럼 빛이 내부를 어느 정도 통과할 수 있는 반투명 재질에서 관찰되며, 빛이 표면 아래에서 퍼지면서 부드럽고 은은한 투과감을 만들어냅니다.


앞서 난반사를 “입사한 빛이 여러 방향으로 흩어져 반사되는 현상”으로 설명했는데, 비금속 표면에서 난반사가 일어나는 물리적 원인이 이 내부 산란입니다. 빛이 물체 내부에서 여러 번 산란하면 원래의 방향 정보가 사라지고, 표면 밖으로 나올 때 모든 방향으로 고르게 퍼집니다.

불투명한 재질에서는 입사 지점과 출사 지점의 거리가 무시할 수 있을 만큼 가까워서, 셰이더가 이 내부 산란을 표면의 한 점에서 일어나는 난반사(Lambert 모델 등)로 근사합니다.

반면 피부나 대리석처럼 입사-출사 거리가 눈에 띌 만큼 큰 재질에서는 SSS 효과가 시각적으로 드러나므로, 게임에서 별도의 셰이딩 모델이나 포스트 프로세스로 이를 근사합니다.


에너지 보존

지금까지 반사, 굴절, 흡수를 개별 현상으로 다루었습니다.

이 세 현상 모두에 적용되는 물리적 제약이 에너지 보존 법칙(Law of Energy Conservation)입니다.

표면에서 나가는 빛의 총 에너지는 들어온 빛의 에너지를 초과할 수 없습니다.


\[E_{\text{입사}} = E_{\text{반사}} + E_{\text{투과}} + E_{\text{흡수}}\]
에너지 보존 입사: 100% 반사: 30% 눈에 보임 흡수: 50% 열로 변환 투과: 20% 물체 통과 30% + 50% + 20% = 100% ✓


에너지 보존이 그래픽스에서 중요한 이유

PBR 이전에 널리 쓰이던 전통적 셰이딩 모델(Phong, Blinn-Phong 등)은 Diffuse 성분과 Specular 성분을 독립적으로 계산하여 더했습니다.

두 성분 사이에 에너지 총량을 제한하는 연결이 없었으므로, 특정 파라미터 조합에서 반사 에너지가 입사 에너지를 초과할 수 있었습니다.

그 결과 특정 각도에서 표면이 비정상적으로 밝아지거나, 재질 간 시각적 일관성이 깨지는 문제가 발생했습니다.


PBR(Physically Based Rendering)은 에너지 보존을 수식 수준에서 강제하여 이 문제를 해결합니다. PBR이 강제하는 에너지 보존 규칙은 세 가지입니다.


PBR의 에너지 보존 규칙 1: 반사 에너지 ≤ 입사 에너지 Diffuse 반사 + Specular 반사 ≤ 1.0 규칙 2: Specular가 증가하면 Diffuse는 감소 표면이 더 많이 정반사하면, 난반사에 쓸 수 있는 에너지가 그만큼 줄어든다 규칙 3: 금속은 Diffuse가 거의 0 금속 표면은 자유전자가 빛을 대부분 정반사한다 Diffuse로 나갈 에너지가 남지 않는다


에너지 보존 원칙은 러프니스(Roughness) 파라미터에서 직접 드러납니다.

PBR 셰이더는 표면을 눈에 보이지 않을 만큼 작은 미세 면(microfacet)의 집합으로 모델링하는데, 러프니스는 이 미세 면들의 법선이 얼마나 넓은 범위로 분산되어 있는지를 결정합니다.

러프니스가 높으면 법선 방향이 넓게 퍼져 빛이 여러 방향으로 흩어지고, 하이라이트 영역이 커집니다. 이때 하이라이트의 최대 밝기는 함께 감소합니다. 면적이 넓어졌는데 밝기까지 동일하면 반사 에너지 총량이 입사 에너지를 초과하여 규칙 1을 위반하기 때문입니다.

이 미세 면 법선의 통계적 분포를 기술하는 함수가 NDF(Normal Distribution Function)이며, NDF의 코사인 가중 반구 적분이 항상 1이 되도록 정규화함으로써 “면적 × 밝기 = 일정” 관계가 수식 수준에서 유지됩니다. 여기에 기하 감쇠 함수(G)가 미세 면 사이의 차폐·그림자를, 프레넬 항(F)이 각도별 반사 비율을 처리하며, 이들이 Cook-Torrance BRDF 안에서 결합되어 전체 스페큘러 반사의 에너지 보존이 완성됩니다.


러프니스에 따른 하이라이트 변화 (에너지 보존) 러프니스 낮음 (매끄러움) 좁고 밝은 하이라이트 총 에너지 = E 러프니스 높음 (거침) 넓고 어두운 하이라이트 총 에너지 = E (동일) = 면적 × 밝기 = 일정


에너지 보존이 수식에 내장되어 있으므로, PBR에서는 러프니스를 올리든 메탈릭을 바꾸든 결과가 물리적으로 일관성을 유지합니다. 에너지 보존이 없는 전통 모델에서는 아티스트가 파라미터 조합마다 결과를 수동으로 확인하고 보정해야 했지만, PBR에서는 수식 자체가 물리적 제약을 만족시키므로 그런 보정이 필요 없습니다.


BRDF 개념

지금까지 반사, 굴절, 흡수라는 개별 현상과 이를 제약하는 에너지 보존 법칙을 살펴보았습니다.

이 현상들을 하나의 수학적 프레임워크로 통합하는 도구가 BRDF(Bidirectional Reflectance Distribution Function, 양방향 반사 분포 함수)입니다.


BRDF란

BRDF는 특정 방향에서 들어온 빛이 특정 방향으로 반사되는 비율을 정의하는 함수입니다. “양방향(Bidirectional)”이라는 이름은 입사 방향(wi)과 반사 방향(wo), 두 방향을 모두 인자로 받는 데서 유래합니다.


표면 표면 점 x N ωi 입사 방향 ωo 반사 방향
\[f_r(\omega_i, \omega_o) = \frac{L_o(\omega_o)}{E_i(\omega_i)}\]
  • 복사휘도(Radiance): 특정 방향으로 단위 면적, 단위 입체각당 전달되는 빛 에너지
  • 복사조도(Irradiance): 특정 입사 방향 ωi의 빛이 표면의 단위 면적에 기여하는 에너지 (입사 복사휘도 × cosθi × 미분 입체각으로 계산)
  • 입력: 입사 방향 ωi, 반사 방향 ωo
  • 출력: 반사 비율 (0 이상의 실수)


같은 빛이 같은 각도로 들어오더라도 재질에 따라 반사 분포가 달라지며, BRDF는 이 재질별 반사 특성을 수학적으로 기술합니다.

거울은 입사 방향의 정확한 대칭 방향으로만 빛을 반사하므로 BRDF가 그 한 방향에서만 높은 값을 가지고, 분필은 모든 방향으로 고르게 반사하므로 BRDF 값이 방향에 관계없이 균일합니다.

아래 다이어그램은 빛이 법선 방향에서 입사할 때, 반사 방향에 따른 BRDF 값의 분포를 재질별로 비교한 개념도입니다.


이상적 거울 하나의 반사 방향에만 에너지 집중 매끄러운 금속 좁은 범위에 에너지 집중 거친 플라스틱 넓게 분산 + 약한 하이라이트 분필 (이상적 난반사) 모든 방향으로 균일 ωi — 법선 방향 입사 (모든 재질 공통)


BRDF와 셰이딩 모델의 관계

게임 그래픽스에서 사용하는 셰이딩 모델(Lambert, Phong, Blinn-Phong, Cook-Torrance 등)은 모두 특정 형태의 BRDF를 구현한 것입니다.


셰이딩 모델과 BRDF

셰이딩 모델 BRDF 특성
Lambert 상수 BRDF (방향 무관), 난반사만 표현
Phong Lambert + 반사 방향 기반 정반사 추가
Blinn-Phong Lambert + 반법선 기반 정반사 근사
Cook-Torrance (PBR) 미세 면 이론 기반 BRDF, 에너지 보존·프레넬 포함, 물리적으로 정확한 반사 분포


Lambert 모델은 BRDF가 상수인 가장 단순한 형태입니다. 반사 방향에 관계없이 동일한 비율로 빛을 반사하므로, 앞서 난반사 절에서 설명한 “어느 각도에서 봐도 밝기가 같은” 표면에 대응합니다.


반면, PBR에서 사용하는 Cook-Torrance BRDF는 앞서 에너지 보존 절에서 소개한 미세 면(microfacet) 이론을 기반으로 하며, 세 가지 함수의 곱으로 구성됩니다.

법선 분포 함수(D, Normal Distribution Function)는 미세 면 법선 중 관찰자에게 빛을 정반사할 수 있는 방향을 가리키는 비율을 나타내며, 앞서 러프니스 절에서 설명한 NDF가 이 역할을 합니다.

프레넬 함수(F)는 입사각에 따라 반사되는 빛의 비율이 달라지는 프레넬 효과를 계산합니다.

기하 감쇠 함수(G)는 미세 면끼리 서로를 가려서 빛이 차단되는 정도, 즉 자기 그림자(self-shadowing)와 마스킹(masking)을 보정합니다.

이 세 함수의 곱에 정규화 인자를 결합하여, 에너지 보존을 만족하는 정반사 분포를 구성합니다. 각 함수의 구체적인 수식과 정규화 인자의 유도, 셰이딩 모델별 구현 차이는 색과 빛 (3) - 셰이딩 모델에서 다룹니다.

BRDF의 물리적 제약

물리적으로 올바른 BRDF는 헬름홀츠 상호성에너지 보존, 두 가지 조건을 만족해야 합니다.


헬름홀츠 상호성(Helmholtz Reciprocity)은 입사 방향과 반사 방향을 바꿔도 BRDF 값이 동일해야 한다는 조건입니다.

\[f_r(\omega_i, \omega_o) = f_r(\omega_o, \omega_i)\]

이 대칭성이 보장되면 광원과 관찰자의 위치를 맞바꿔도 같은 반사 결과를 얻으므로, 어떤 시점에서든 표면의 반사 특성이 일관되게 유지됩니다.

레이트레이싱에서 카메라로부터 역추적한 광선이 광원에서 출발한 광선과 같은 경로를 공유할 수 있는 것도 이 상호성 덕분입니다.


에너지 보존(Energy Conservation)은 반구 전체에 걸친 반사 에너지의 합이 입사 에너지를 초과하지 않아야 한다는 조건입니다.

\[\int_{\Omega} f_r(\omega_i, \omega_o) \cos\theta_o \, d\omega_o \le 1\]

모든 반사 방향 ω_o에 대해 BRDF와 cos θ_o의 적분이 1 이하여야 하며, 이는 앞의 에너지 보존 절에서 다룬 “나가는 에너지 ≤ 들어온 에너지” 원칙을 BRDF 함수 수준으로 공식화한 것입니다.


이 두 조건을 만족하지 않는 BRDF를 사용하면, 특정 각도에서 표면이 비물리적으로 밝아지거나 시점에 따라 반사가 달라지는 등 일관성 없는 결과가 나타납니다.

Cook-Torrance BRDF는 D·F·G 함수와 정규화 인자 자체가 이 두 조건을 만족하도록 설계되어 있으므로, PBR은 별도의 보정 없이 물리적으로 일관된 결과를 냅니다.


BRDF의 범위 — BTDF와 BSDF

BRDF는 표면에서 반사되는 빛만 다룹니다.

유리나 물처럼 빛이 표면을 통과하여 반대편으로 나가는 투과까지 포함하려면 BTDF(Bidirectional Transmittance Distribution Function)가 필요합니다.

유리처럼 반사와 투과가 동시에 일어나는 재질에서는 BRDF와 BTDF를 합친 BSDF(Bidirectional Scattering Distribution Function)로 표면의 모든 산란을 기술합니다.

게임 그래픽스에서는 대부분의 표면이 불투명하므로 BRDF만으로 충분합니다. 투과가 필요한 재질도 완전한 BTDF를 계산하기보다, 알파 블렌딩이나 화면 공간 굴절 같은 근사 기법으로 대체하는 것이 일반적입니다.


마무리

  • 빛은 전자기파의 일종이며, 인간이 볼 수 있는 가시광선은 380~780nm 파장 범위에 해당합니다. 게임에서는 RGB 세 채널의 조합으로 파장 정보를 근사합니다
  • 빛이 표면에 닿으면 반사, 굴절, 흡수 세 가지 현상이 발생합니다. 반사는 거칠기에 따라 정반사(Specular)와 난반사(Diffuse)로 나뉩니다
  • 굴절은 매질 경계에서 빛의 속도 차이가 만드는 방향 변화이며, 프레넬 효과는 입사 각도에 따라 반사/굴절 비율이 변하는 현상입니다
  • 흡수는 물체가 특정 파장을 열로 변환하는 과정이며, 흡수되지 않고 반사된 파장이 물체의 색을 결정합니다. 셰이더에서는 조명 색상과 Albedo의 곱셈으로 이 상호작용을 표현합니다
  • 에너지 보존은 반사, 굴절, 흡수 에너지의 합이 입사 에너지를 초과할 수 없다는 제약이며, PBR은 이 원칙을 셰이딩 모델 내부에 내장합니다
  • BRDF는 입사 방향에서 반사 방향으로 빛이 반사되는 비율을 정의하는 함수이며, 모든 셰이딩 모델은 특정 형태의 BRDF를 구현한 것입니다

이 물리적 현상들은 독립적이지 않습니다. 반사, 굴절, 흡수는 에너지 보존이라는 하나의 제약 아래 서로 연결되고, BRDF는 이 관계를 하나의 함수로 표현합니다.

셰이딩 계산은 이 물리적 원리 위에서 이뤄지지만, 계산 결과를 화면에 옮기려면 색공간(Color Space)이라는 디지털 표현 체계가 필요합니다.

감마 보정은 제한된 비트 수를 인간의 밝기 인지에 맞게 배분하고, 선형 워크플로우는 조명 계산의 물리적 정확성을 보장하며, HDR은 현실의 넓은 밝기 범위를 표현합니다.

이 체계를 색과 빛 (2) - 색 표현과 색공간에서 다룹니다.



관련 글

시리즈

전체 시리즈

Tags: Unity, 그래픽스, 모바일, 물리,

Categories: ,