본 강의 노트에서는 물리 기반 렌더링의 기본 사항을 다룹니다. 먼저 기본 물리학을 설명하고, 관련 수학적 모델을 소개한 후, 최종적으로 이러한 모델의 구현 방법을 다룹니다.
The Physics of Shading
기본이 되는 물리 현상은 빛과 물질의 상호작용입니다. 이를 이해하려면 빛의 본질에 대한 이해가 필요합니다.
빛은 전자기파이며 기본적으로 횡파입니다.
빛은 파동이므로 파장으로 특정할 수 있습니다. 전자기 파장은 매우 넓은 범위를 포괄하지만, 여기서는 인간에게 가시적인 좁은 영역만 다룹니다.
물질이 빛에 미치는 영향은 굴절률이라는 속성으로 정의됩니다. 굴절률은 복소수입니다. 실수부는 물질이 빛의 속도에 미치는 영향(진공 대비 느려짐)을 나타내고, 허수부는 빛이 전파될 때 흡수되는지(다른 형태의 에너지로 변환되는지) 여부를 결정합니다.
굴절률은 빛의 파장에 따라 달라질 수 있습니다.
Homogeneous Media
빛-물질 상호작용의 가장 간단한 형태는 빛이 균질 매질(homogeneous medium)을 통과하여 전파되는 경우입니다. 이는 굴절률이 균일한 물질 영역을 의미합니다(빛의 파장 규모 기준—가시광선의 경우 약 100나노미터보다 훨씬 작은 변화는 고려되지 않음).
그림 3: 물이나 유리와 같은 투명 매질 속의 빛(왼쪽)은 동일한 강도와 색상으로 직선으로 계속 전파됩니다(오른쪽).
•
투명 매질(transparent medium)은 가시광선 파장 대역에서 굴절률의 허수부가 매우 낮은 매질입니다. 즉, 유의미한 흡수가 없으며 매질을 통과하는 빛이 변하지 않고 직선으로 계속 나아갑니다. 물과 유리가 대표적인 예입니다(그림 3 참조).
균질 매질이 가시광선 스펙트럼에서 유의미한 흡수율(absorptivity)을 가진다면 통과하는 빛의 일정량을 흡수합니다. 빛이 이동한 거리가 멀수록 흡수량은 증가합니다. 그러나 빛의 방향은 변하지 않으며, 단지 강도만 변합니다(흡수율이 특정 파장에 선택적이라면 색상도 변할 수 있음)(그림 4 참조).
그림 4: 맑지만 흡수성이 있는 매질을 통과하는 빛(왼쪽)은 직선으로 계속 나아가지만 거리에 따라 강도를 잃습니다(그리고 색상이 변할 수 있음)(오른쪽).
그림 5: 물의 미세한 흡수율은 거리가 길어지면 유의미해집니다.
매질의 흡수율뿐만 아니라 규모(scale)도 중요합니다. 예를 들어, 물은 가시광선을 미세하게 흡수하며 특히 적색 영역에서 그렇습니다. 인치 단위의 규모에서는 무시할 만하지만(그림 3), 수 피트 이상의 거리에서는 상당히 중요해집니다(그림 5 참조).
Scattering
균질 매질에서 빛은 항상 직선으로 전파되며 방향을 바꾸지 않습니다(흡수에 의해 양이 줄어들 수는 있지만). 반면 불균질 매질(heterogeneous medium)은 굴절률에 변화가 있는 매질입니다. 굴절률이 천천히 연속적으로 변하면 빛은 곡선으로 휘어집니다. 그러나 굴절률이 급격하게 변하면(즉, 빛의 파장보다 짧은 거리 내에서) 빛은 산란됩니다—여러 방향으로 쪼개집니다. 산란은 빛의 전체 양을 변화시키지 않습니다.
미세 입자들은 주변 영역과 굴절률이 다른 고립된 "섬"을 형성합니다. 이는 빛이 모든 방향으로 지속적으로 산란되도록 합니다(그림 6 참조). 산란된 빛의 분포는 일반적으로 균일하지 않으며 입자 유형에 따라 달라집니다. 어떤 입자는 전방 산란(forward scattering, 더 많은 빛이 전방으로 진행)을 유발하고, 어떤 입자는 후방 산란(backscattering, 더 많은 빛이 역방향으로 진행)을 유발하며, 어떤 입자는 특정 방향에 "스파이크"가 있는 복잡한 분포를 가집니다.
흐린 매질에서는 산란 요소의 밀도가 빛의 전파 방향을 어느 정도 무작위화하기에 충분합니다(그림 7). 반투명하거나 불투명한 매질에서는 산란 요소의 밀도가 너무 높아서 빛의 방향이 완전히 무작위화됩니다(그림 8).
흡수와 마찬가지로 산란도 규모에 의존합니다. 수 피트 거리에서는 산란이 무시할 만한 수준인 깨끗한 공기도 수 마일에 걸쳐서는 상당한 빛 산란을 유발합니다(그림 9).
그림 설명 번역:
•
그림 6: 입자는 빛이 모든 방향으로 산란되게 합니다.
•
그림 7: 흐린 매질 속의 빛(왼쪽)은 전파됨에 따라 방향이 어느 정도 무작위화됩니다(오른쪽).
•
그림 8: 반투명하거나 불투명한 매질 속의 빛(왼쪽)은 전파됨에 따라 방향이 완전히 무작위화됩니다(오른쪽).
•
그림 9: 깨끗한 공기조차도 수 마일의 거리에서는 상당한 빛 산란을 유발합니다.
Media Appearance
이전 섹션에서는 물질과 빛 사이의 두 가지 상호 작용 방식을 논의했습니다. 복소수 굴절률을 가진 물질 영역은 흡수(absorption)를 유발합니다—빛의 양은 거리에 따라 줄어들지만(특정 파장에서 흡수가 우선적으로 발생하면 색상이 변할 수 있음) 방향은 변하지 않습니다.
반면 굴절률의 급격한 변화는 산란(scattering)을 유발합니다—빛의 방향이 변하여 여러 방향으로 쪼개지지만 전체 양이나 스펙트럼 분포는 변하지 않습니다.
세 번째 상호 작용 방식은 방출(emission)입니다. 이는 다른 형태의 에너지로부터 새로운 빛이 생성되는 것으로 흡수의 반대입니다. 방출은 광원에서 발생하지만 셰이딩에서는 자주 다루지 않습니다. 그림 10은 세 가지 상호 작용 방식을 보여줍니다.
그림 10: 빛과 물질 간의 세 가지 상호 작용 방식—흡수(왼쪽), 산란(가운데), 방출(오른쪽).
대부분의 매질은 어느 정도 빛을 산란시키면서 동시에 흡수합니다. 각 매질의 외관은 산란과 흡수의 상대적인 양에 따라 달라집니다. 그림 11은 다양한 산란 및 흡수율 조합을 가진 매질을 보여줍니다.
그림 11: 다양한 양의 빛 흡수와 산란을 보여주는 매질들.
Scattering at a Planar Boundary
맥스웰 방정식(Maxwell's equations)은 굴절률이 변할 때 빛의 거동을 계산하는 데 사용할 수 있지만, 대부분의 경우 해석적 해가 존재하지 않습니다. 그러나 해가 존재하는 특수한 경우가 하나 있으며, 이는 표면 셰이딩과 깊은 관련이 있습니다.
바로 서로 다른 굴절률을 가진 두 볼륨 사이의 무한하고 완벽하게 평평한 평면 경계(infinite, perfectly flat planar boundary)입니다. 경계의 한쪽에는 공기의 굴절률이, 다른 쪽에는 물체의 굴절률이 있는 물체 표면을 묘사하기에 적합합니다. 이 특수한 경우에 대한 맥스웰 방정식의 해를 프레넬 방정식(Fresnel equations)이라고 합니다.
실제 물체 표면은 무한하지 않지만, 가시광선의 파장과 비교하면 무한한 것으로 취급할 수 있습니다. "완벽하게 평평하다"는 점에 대해서는 이의가 제기될 수 있습니다. 개별 원자가 피코 스케일의 "범프(법선)"를 형성하므로 어떤 표면도 진정으로 평평할 수 없기 때문입니다. 그러나 다른 모든 것과 마찬가지로 빛의 파장에 대한 상대적인 규모(scale)가 중요합니다. 수백 나노미터 규모에서 완벽하게 평평한 표면을 만드는 것은 실제로 가능하며, 이러한 표면을 광학적 평면(optically flat)이라고 합니다. 이는 일반적으로 망원경과 같은 고품질 광학 기기에 사용됩니다.
이 특수한 경우, 빛은 모든 방향으로 연속적으로 산란되는 대신 정확히 두 방향—반사(reflection)와 굴절(refraction)로 나뉩니다(그림 12).
그림 12: 평면 경계에서의 굴절률 변화는 빛을 두 방향으로 산란시킵니다. (이미지 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용됨.)
그림 12에서 볼 수 있듯이 반사각(angle of reflection)은 입사각과 같지만, 굴절각(angle of refraction)은 다릅니다. 굴절각은 매질의 굴절률에 따라 달라집니다(정확한 수학적 공식은 스넬의 법칙(Snell's Law)을 참고하십시오). 반사된 빛과 굴절된 빛의 비율은 프레넬 방정식으로 설명되며, 이는 나중 섹션에서 논의합니다.
Non-Optically-Flat Surfaces
물론 대부분의 실제 표면은 망원경 거울처럼 정밀하게 연마되어 있지 않습니다. 그렇다면 광학적으로 평평하지 않은 표면에서는 무슨 일이 일어날까요? 대부분의 경우, 빛의 파장보다는 크지만 육안이나 렌더링으로는 감지할 수 없을 만큼 작은(즉, 단일 픽셀이나 셰이딩 샘플보다 작은) 불규칙성이 존재합니다. 이 경우 표면은 아주 작은 광학 평면들의 집합처럼 동작합니다. 표면의 외관은 서로 다른 방향을 가진 수많은 점들이 반사한 빛의 종합 결과이며, 각 점은 들어오는 빛을 조금씩 다른 방향으로 반사합니다(그림 13).
[그림 13] 광학적으로 평평하지 않은 표면의 반사는 서로 다른 방향을 가진 많은 표면 지점의 반사가 합쳐진 결과입니다.
[그림 14] 윗줄: 비교적 매끄러운 표면. 표면 방향의 변화가 작아 반사광 방향의 분산이 작고, 더 선명한 반사가 나타납니다.
아랫줄: 더 거친 표면. 표면의 여러 지점이 크게 다른 방향을 가져 반사광 방향의 분산이 크고, 흐릿한 반사가 나타납니다.
참고: 두 표면 모두 육안으로는 매끄러워 보입니다. 거칠기의 차이는 미세 규모에 있습니다.
(이미지 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용)
미세 규모에서 표면이 거칠수록 미세 표면의 방향이 거시적 표면 방향에서 더 크게 벗어나므로 반사가 더 흐릿해집니다(그림 14).
셰이딩 목적상 이러한 미세 기하학을 통계적으로 처리하고, 표면의 각 지점에서 빛이 여러 방향으로 반사(및 굴절)되는 것으로 간주하는 것이 일반적입니다(그림 15).
Subsurface Scattering
굴절된 빛은 어떻게 될까요? 이는 물체의 구성 성분에 따라 다릅니다.
금속(Metals)은 가시광선 스펙트럼에서 매우 높은 흡수 계수(굴절률의 허수부)를 가집니다. 따라서 금속 내부로 굴절된 모든 빛은 자유 전자에 의해 즉시 흡수됩니다.
반면 비금속(Non-metals, 유전체 또는 절연체)은 빛이 내부로 굴절되면 앞서 다루었던 흡수 및 산란 거동을 보이는 일반적인 참여 매체(participating media)처럼 행동합니다. 대부분의 경우, 굴절된 빛의 일부는 충분히 산란되어 다시 표면 밖으로 방출됩니다. 이 두 가지 경우가 Figure 16에 묘사되어 있습니다.
[Figure 15] 거시적으로 볼 때, 광학적으로 평평하지 않은 표면은 빛을 여러 방향으로 반사(및 굴절)하는 것으로 취급할 수 있습니다.
[Figure 16] 왼쪽 (금속): 모든 굴절된 빛 에너지는 자유 전자에 의해 즉시 흡수됩니다.
오른쪽 (비금속): 굴절된 빛 에너지는 일반적으로 부분적인 흡수를 겪은 후 표면 밖으로 다시 나올 때까지 산란됩니다.
(이미지 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용)
Figure 16의 오른쪽을 보면, 표면하 산란된 빛(파란색 화살표)이 원래 진입점으로부터 다양한 거리만큼 떨어진 여러 지점에서 방출되는 것을 볼 수 있습니다. Figure 17은 이 거리와 픽셀 크기 간의 관계를 두 가지 경우로 보여줍니다.
Figure 17 왼쪽 상단: 픽셀이 진입-출구 표면하 산란 거리보다 큽니다. 이 경우 진입-출구 거리는 무시할 수 있으며, 표면하 산란된 빛은 오른쪽 상단에서 보듯이 들어온 지점과 동일한 지점에서 나가는 것으로 가정할 수 있습니다. 이를 통해 셰이딩을 완전히 국소적인(local) 과정으로 처리할 수 있습니다. 즉, 한 지점에서 나가는 빛은 오직 그 지점으로 들어오는 빛에만 의존합니다.
Figure 17 하단: 픽셀이 진입-출구 거리보다 작습니다. 이 경우 각 지점의 셰이딩은 다른 지점에 입사한 빛의 영향을 받습니다.
이 효과를 포착하려면 국소적인 셰이딩만으로는 충분하지 않으며 특수한 렌더링 기법을 사용해야 합니다. 이를 보통 "서브서피스 스캐터링(SSS)" 기법이라 부르지만, 중요한 점은 "일반적인" 디퓨즈(Diffuse) 셰이딩 또한 동일한 물리적 현상(굴절된 빛의 표면하 산란)의 결과라는 사실입니다.
유일한 차이점은 관찰 규모에 대한 산란 거리의 상대적 크기입니다. 이러한 통찰은 일반적으로 "서브서피스 스캐터링" 거동을 보인다고 생각되는 재질이라도 먼 거리에서는 일반적인 디퓨즈 셰이딩으로 처리할 수 있다는 것을 알려줍니다(예: 멀리 있는 캐릭터의 피부). 반대로, "일반적인 디퓨즈 셰이딩" 거동을 보이는 재질도 매우 가까이서 보면 "서브서피스 스캐터링" 외관을 띨 수 있습니다(예: 작은 플라스틱 장난감의 극도로 가까운 클로즈업).
[Figure 17] 왼쪽 상단: 픽셀(빨간 테두리의 녹색 원)이 빛이 표면을 빠져나가기 전에 이동한 거리보다 큽니다. 이 경우 나가는 빛은 진입 지점에서 방출된 것으로 가정할 수 있습니다(오른쪽 상단).
하단: 픽셀이 산란 거리보다 작습니다. 사실적인 셰이딩을 원한다면 이 거리를 무시해서는 안 됩니다.
The Mathematics of Shading
전자기 방사선(가시광선 포함)의 측정을 방사 측정(radiometry)이라고 부릅니다. 빛을 측정하는 다양한 방사 측정 물리량이 존재하지만, 여기서는 단일 광선을 따라 빛의 크기를 정량화하는 방사 휘도(radiance)에만 집중합니다. 방사 휘도는 일반적인 표기법인 로 나타냅니다. 표면의 한 지점을 셰이딩할 때, 는 들어오는 방사 휘도를, 는 나가는 방사 휘도를 의미합니다.
방사 휘도는 다른 방사 측정 물리량들과 마찬가지로 분광(spectral) 물리량입니다. 즉, 파장에 따라 값이 변합니다. 이론적으로는 연속적인 스펙트럼 분포로 저장되어야 하며, 일부 특수 렌더링에서는 실제로 촘촘한 스펙트럼 샘플이 사용됩니다. 하지만 모든 프로덕션 렌더링(영화 및 게임)에서는 RGB 삼중값을 사용합니다. 이 삼중값과 스펙트럼 분포의 관계에 대한 설명은 Real-Time Rendering [49]을 비롯한 여러 자료에서 찾을 수 있습니다.
The BRDF (양방향 반사 분포 함수)
셰이딩이 국소적으로 처리될 수 있다고 가정하는 것이 일반적입니다(그림 17의 우측 상단 참조). 이 경우, 주어진 표면 지점이 빛에 반응하는 방식은 들어오는(빛) 방향과 나가는(시야) 방향에만 의존합니다. 이 문서에서는 를 나가는 방향을 가리키는 단위 길이 벡터로, 을 들어오는 방향의 반대를 가리키는 단위 길이 벡터로 표기합니다(모든 벡터가 표면에서 멀어지는 방향을 가리키도록 하는 것이 편리합니다). 표면의 빛에 대한 반응은 BRDF(양방향 반사 분포 함수, Bidirectional Reflectance Distribution Function)라는 함수로 정량화되며, 이를 로 표기합니다. 각 방향은 두 개의 숫자(예: 극좌표)로 매개변수화될 수 있으므로, BRDF의 전체 차원 수는 4입니다. 많은 경우, 표면 법선을 중심으로 조명과 시야 방향을 회전시켜도 BRDF에 영향을 미치지 않습니다. 이러한 등방성(isotropic) BRDF는 세 개의 각도로 매개변수화될 수 있습니다(그림 18 참조). 실제로 주어진 BRDF를 계산하는 데 사용되는 각도의 수는 1개에서 5개까지 다양하며, 일반적으로 사용되는 각도들이 그림 19에 나와 있습니다.
그림 18: BRDF는 들어오는 방향과 나가는 방향에 의존합니다. 이들은 네 개의 각도로 매개변수화될 수 있으며, 등방성 BRDF의 경우 세 개로 가능합니다. 여기서 은 표면 법선 벡터, 은 들어오는 빛 방향 벡터, 는 나가는(시야) 방향 벡터, 는 표면 위의 선호 방향을 정의하는 접선 벡터입니다(이는 빛과 시야 벡터가 을 중심으로 회전할 때 반사 거동이 변하는 이방성(anisotropic) BRDF에만 사용됩니다).
그림 19: 그림 18의 각도들 외에, BRDF 평가에 일반적으로 사용되는 몇 가지 각도의 예.
원칙적으로 BRDF는 표면 위쪽의 빛과 시야 방향에 대해서만 정의됩니다(각주 2). 즉, 내적 과 는 모두 음수가 아니어야 합니다(각주 3). 후면 조명 방향을 피하는 것은 간단합니다. 전면 방향의 들어오는 빛만 모으거나, 후면 방향에서 오는 빛의 기여도를 0으로 설정하면 됩니다. 후면 시야 방향은 이론적으로 발생해서는 안 되지만, 정점 법선의 보간이나 노멀 매핑(게임에서 둘 다 흔함)은 실제로 이러한 상황을 만들 수 있습니다. 음수 값을 피하기 위해, 시야와 법선 사이의 내적은 0으로 클램핑되거나 그 절댓값을 사용해야 합니다.
BRDF는 직관적으로 두 가지 방식으로 해석될 수 있으며, 둘 다 타당합니다. 첫 번째는 특정 방향에서 들어오는 빛이 주어졌을 때, BRDF가 표면 위의 모든 나가는 방향에 대한 반사 및 산란된 빛의 상대적 분포를 제공한다는 것입니다. 두 번째는 주어진 시야 방향에 대해, BRDF가 나가는 빛에 대한 각 들어오는 방향의 상대적 기여도를 제공한다는 것입니다. 두 해석 모두 그림 20에 묘사되어 있습니다.
그림 20: 왼쪽은 BRDF의 한 가지 해석을 보여줍니다. 주어진 나가는(시야) 방향에 대해, 들어오는 빛의 상대적 기여도를 명시합니다. 오른쪽은 대안적 해석을 보여줍니다. 주어진 들어오는 빛 방향에 대해, 나가는 빛의 분포를 명시합니다.
The Reflection Equation
BRDF는 분광 물리량입니다. 이론적으로 입력 및 출력 파장은 BRDF의 차원을 증가시키는 추가 입력이 되어야 합니다. 그러나 실제로는 개별 파장 간의 상호 간섭(cross-talk)이 없습니다(각주 4). 나가는 빛의 각 파장은 들어오는 빛의 동일한 파장에 의해서만 영향을 받습니다. 즉, 입력 및 출력 파장을 BRDF 입력으로 취급하는 대신, BRDF를 분광 값 빛의 색상과 곱해지는 분광 값 함수로 취급합니다. 프로덕션 셰이딩에서 이는 RGB 값의 빛 색상과 곱해지는 RGB 값의 BRDF를 의미합니다.
BRDF는 반사 방정식(reflection equation)에 사용됩니다:
이 방정식이 다소 복잡해 보일 수 있지만, 그 의미는 간단합니다. 나가는 방사 휘도는 들어오는 방사 휘도에 BRDF와 코사인 항을 곱한 것의 (표면 위 모든 방향에 대한) 적분과 같습니다. 적분에 익숙하지 않다면 일종의 연속 가중 평균으로 생각할 수 있습니다. 기호는 성분별 벡터 곱셈을 나타냅니다. BRDF와 빛의 색상은 모두 분광(RGB) 벡터이기 때문입니다.
들어오는 방향과 나가는 방향에 대한 모든 함수가 BRDF로서 타당한 것은 아닙니다. BRDF가 물리적으로 타당(physically plausible)하기 위해서는 두 가지 속성, 즉 상반성(reciprocity)과 에너지 보존(energy conservation)을 가져야 한다는 것이 일반적으로 인정됩니다.
상반성은 과 가 바뀌어도 BRDF가 같은 값을 가짐을 의미합니다:
에너지 보존은 표면이 들어오는 빛 에너지의 100% 이상을 반사할 수 없다는 사실을 나타냅니다. 수학적으로는 다음 부등식으로 표현됩니다:
이는 가능한 모든 빛의 방향 에 대해, 나가는 방향 에 대한 BRDF와 코사인 항의 곱의 적분이 1을 초과해서는 안 됨을 의미합니다.
그림 21: BRDF 스페큘러 항은 일반적으로 표면 반사에 사용되며, BRDF 디퓨즈 항은 표면 하 산란에 사용됩니다.
BRDF에 의해 기술되는 현상은 (적어도 비금속의 경우) 두 가지 뚜렷한 물리적 현상, 즉 표면 반사(surface reflection)와 표면 하 산란(subsurface scattering)을 포함합니다. 각 현상은 서로 다른 거동을 가지므로, BRDF는 일반적으로 각각에 대한 별도의 항을 포함합니다. 표면 반사를 설명하는 BRDF 항은 스페큘러 항(specular term)이라 불리며, 표면 하 산란을 설명하는 항은 디퓨즈 항(diffuse term)이라 불립니다. 그림 21을 참조하십시오.
Surface Reflectance (Specular Term)
물리 기반 스페큘러(specular) BRDF 항은 일반적으로 미세면 이론(microfacet theory)에 기반합니다. 이 이론은 광학적으로 평평하지 않은 일반 표면에서의 표면 반사를 설명하기 위해 개발되었습니다. 미세면 이론의 핵심 가정은 표면이 개별적으로는 너무 작아 보이지 않는 수많은 미세면(microfacets)으로 구성되어 있다는 것입니다. 각 미세면은 광학적으로 평평하다고 가정됩니다. 이전 섹션에서 언급했듯이, 광학적으로 평평한 표면은 빛을 정확히 두 방향 반사와 굴절으로 나눕니다.
그림 22: 인 미세면들은 을 로 반사하도록 배향되어 있습니다. 다른 미세면들은 BRDF에 기여하지 않습니다.
그림 23: 왼쪽에서 일부 미세면은 방향으로부터 가려져 빛을 받지 못하므로(쉐도잉, shadowing) 아무것도 반사할 수 없습니다. 중앙에서 일부 미세면은 시야 방향 에서 보이지 않으므로(마스킹, masking), 그곳에서 반사된 빛은 볼 수 없습니다. 두 경우 모두 이러한 미세면들은 BRDF에 기여하지 않습니다. 실제로는 그림자 진 빛이 단순히 사라지는 것이 아니라 미세면에서 계속 튕겨 나가며, 그중 일부는 결국 시야 방향으로 들어옵니다(오른쪽 참조). 이러한 상호 반사(interreflections)는 미세면 이론에서 무시됩니다.
각 미세면은 미세면 법선 의 배향(orientation)에 따라 주어진 들어오는 방향의 빛을 단일 나가는 방향으로 반사합니다. BRDF 항을 평가할 때 빛의 방향 과 시야 방향 가 모두 지정됩니다. 따라서 표면 위의 수백만 개 미세면 중 을 로 반사하기에 적절한 각도를 가진 것들만이 BRDF 값에 기여할 수 있습니다. 그림 22에서 보듯이, 이러한 "적절한 각도를 가진" 미세면들은 과 의 정확히 중간에 배향된 표면 법선 을 가집니다. 과 사이의 중간 벡터를 하프 벡터(half-vector) 또는 반각 벡터(half-angle vector)라고 하며, 로 표기합니다.
인 모든 미세면이 반사에 기여하는 것은 아닙니다. 일부는 방향에서 다른 미세면에 의해 차단되거나(쉐도잉, shadowing), 방향에서 차단되거나(마스킹, masking), 혹은 둘 다에 의해 차단됩니다. 미세면 이론은 차단된 모든 빛이 스페큘러 항에서 손실된다고 가정합니다. 실제로는 여러 번의 표면 반사로 인해 그중 일부가 결국 보이게 되지만, 이는 미세면 이론에서 고려되지 않습니다. 일반적으로 이는 심각한 오차를 유발하지 않습니다(거친 금속 표면은 예외일 수 있음). 다양한 유형의 빛-미세면 상호 작용은 그림 23에 나와 있습니다.
이러한 가정들(광학적으로 평평한 미세면, 상호 반사 없음) 하에서 스페큘러 BRDF 항은 제1원리(first principles)로부터 유도될 수 있습니다. 미세면 스페큘러 BRDF 항은 다음과 같은 형태를 가집니다(각주 6):
각 항에 대해 자세히 살펴보기 전에 먼저 요약하면 다음과 같습니다.
•
는 하프 벡터 에서 평가된 미세면 법선 분포 함수(microfacet normal distribution function)입니다. 즉, 빛을 에서 로 반사할 수 있도록 배향된 미세면들의 밀도(concentration)입니다.
•
는 쉐도잉-마스킹 함수(shadowing-masking function)입니다. 이는 인 미세면 중 그림자 지거나 가려지지 않은 비율을 빛의 방향 과 시야 방향 의 함수로 알려줍니다.
•
따라서 와 의 곱은 활성 미세면(active microfacets)의 밀도를 제공합니다. 이는 빛을 에서 로 성공적으로 반사하여 반사율에 실제로 기여하는 미세면들입니다.
•
는 활성 미세면들의 프레넬 반사율(Fresnel reflectance)로, 빛의 방향 과 활성 미세면 법선 의 함수입니다. 이는 들어오는 빛 중 각 활성 미세면에서 반사되는 비율을 알려줍니다.
•
마지막으로, 분모 는 보정 계수(correction factor)입니다. 이는 미세면의 로컬 공간과 전체 매크로 표면(macrosurface) 공간 사이에서 변환되는 물리량들을 설명합니다.
각주 6: 분모의 내적에 대해서는 (일반적인 BRDF에 대해 위에서 언급한 것처럼) 음수 값을 피하는 것만으로는 충분하지 않습니다. 0이 되는 값 또한 피해야 합니다. 실제로는 일반적으로 0으로 클램핑(clamp)하거나 절댓값을 취한 후 아주 작은 양수 값을 더하는 방식으로 이를 처리합니다.
프레넬 반사율 (Fresnel Reflectance)
프레넬 반사율 함수는 광학적으로 평평한(optically flat) 표면에서 반사되는 빛의 비율을 계산합니다. 이 값은 두 가지 요소에 의존합니다: 입사각(빛 벡터와 표면 법선 사이의 각도)과 물질의 굴절률입니다. 굴절률은 가시광선 스펙트럼에 걸쳐 변할 수 있으므로, 프레넬 반사율은 분광(spectral) 물리량이며, 프로덕션 목적으로는 RGB 삼중값(triple)으로 표현됩니다. 표면은 들어오는 빛의 0% 미만이나 100% 이상을 반사할 수 없으므로, 각 RGB 값은 0과 1 사이의 범위에 있어야 합니다. 우리는 인 활성 미세면(active microfacets)에만 관심이 있으므로, 프레넬 반사율에 대한 실제 입사각은 과 사이의 각도입니다.
그림 24: 다양한 물질의 외부 반사에 대한 프레넬 반사율. 구리와 알루미늄은 가시광선 스펙트럼에서 반사율의 변화가 크기 때문에, 이들의 반사율은 R, G, B에 대해 세 개의 별도 곡선으로 표시됩니다. 구리의 R 곡선이 가장 높고, 그다음이 G, 마지막이 B입니다(따라서 붉은색을 띱니다). 알루미늄의 B 곡선이 가장 높고, 그다음이 G, 마지막이 R입니다. (이미지 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용됨)
완전한 프레넬 방정식은 다소 복잡하며, 필요한 물질 파라미터(가시광선 스펙트럼에 걸쳐 촘촘하게 샘플링된 복소 굴절률)는 아티스트가 사용하기에 불편합니다. 그러나 실제 물질에 대한 이 방정식들의 거동을 조사하면 더 편리한 매개변수화를 갖춘 더 간단한 표현식을 유도할 수 있습니다. 이를 위해 그림 24의 그래프를 살펴봅시다.
표 1: 다양한 물질에 대한 값. (표 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용됨)
이 그래프를 위해 선택된 물질들은 매우 다양합니다. 그럼에도 몇 가지 공통적인 패턴을 볼 수 있습니다. 반사율은 에서 약 사이의 입사각에서 거의 일정합니다. 와 약 사이에서는 더 크게 변합니다(일반적으로 증가하지만, 항상 그렇지는 않습니다). 와 사이에서는 반사율이 항상 급격하게 1로 치솟습니다(RGB 삼중값으로 볼 때 흰색). 프레넬 반사율이 대부분의 범위에서 값에 가깝게 유지되므로, 이 값을 해당 물질의 특성 스페큘러 반사율(characteristic specular reflectance)로 생각할 수 있습니다. 이 값은 일반적으로 "색상(color)"이라고 생각되는 것의 모든 속성을 가집니다—즉, 0과 1 사이의 RGB 값으로 구성되며 빛의 선택적 반사율에 대한 척도입니다. 이러한 이유로 이 값을 표면의 스페큘러 색상(specular color)이라고도 부르며, 으로 표기합니다.
복잡한 물리 공식을 매번 계산하는 것은 렌더링 비용이 비싸기 때문에, 슐릭(Schlick)이라는 사람이 만든 근사 공식을 사용합니다.
은 프레넬 반사율 근사를 위한 이상적인 매개변수처럼 보이며, 실제로 Schlick [52]은 이를 사용하는 저렴하고 합리적으로 정확한 근사식을 제공합니다:
이 근사는 컴퓨터 그래픽스에서 널리 사용됩니다. 미세면 BRDF에서 사용될 때는 활성 미세면 법선 가 표면 법선 을 대신해야 합니다.
에 어떤 값을 할당하는 것이 합리적인지 알기 위해, 다양한 실제 물질에 대한 값을 살펴보는 것이 유익합니다. 이는 표 1에서 찾을 수 있습니다. 값은 선형(linear) 및 감마(sRGB) 공간 모두에서 제공됩니다. 선형 공간에서의 셰이딩의 중요성과 감마 공간의 셰이딩 입력 변환과 관련된 문제에 익숙하지 않은 분은 관련 기사 [25, 29, 58]를 참고하시기 바랍니다.
표 1을 살펴보면 몇 가지 눈에 띄는 점이 있습니다. 금속이 비금속보다 훨씬 높은 값을 갖습니다. 철은 비교적 어두운 금속이지만, 에서 입사광의 50% 이상을 반사합니다. 금속은 표면 하 반사(sub-surface reflectance)가 없다는 점을 상기하십시오—밝은 스페큘러 색상과 디퓨즈 색상의 부재가 금속의 구별되는 시각적 특징입니다. 반면 가장 밝은 비금속 중 하나인 다이아몬드는 에서 입사광의 17%만을 반사하며, 대부분의 비금속은 그보다 훨씬 적게 반사합니다. 20%에서 40% 사이의 "무인 지대(no man's land)"에 값을 갖는 물질은 거의 없습니다. 이들은 일반적으로 반도체나 기타 특이한 물질들로, 프로덕션 셰이딩 상황에서 나타날 가능성이 낮습니다. 2%(물의 값)보다 낮은 값의 경우도 마찬가지입니다. 사실상 금속, 보석, 크리스털을 제외하고 실험실 밖에서 볼 수 있는 거의 모든 물질은 2%에서 5% 사이의 좁은 값 범위를 가집니다.
Normal Distribution Function
대부분의 표면에서 미세면(microfacet)들의 방향(orientation)은 균일하게 분포되어 있지 않습니다. "옆쪽"(에서 멀어지는 방향)보다는 "위쪽"(거시적 표면 법선 방향)을 향하는 법선을 가진 미세면들이 더 많습니다.
이러한 미세면 배향의 통계적 분포는 미세면 법선 분포 함수(microfacet normal distribution function) 을 통해 정의됩니다. 와 달리, 의 값은 0과 1 사이로 제한되지 않습니다. 값은 음수일 수 없지만, 그 크기는 제한 없이 커질 수 있습니다(이는 특정 방향을 향하는 미세면의 밀도가 매우 높음을 의미합니다). 또한 와 달리, 함수 는 분광(spectral) 값이나 RGB 값이 아닌 스칼라(scalar) 값을 가집니다.
미세면 BRDF 항에서 는 방향 에 대해 계산되며, 이는 잠재적으로 활성 미세면(active microfacets), 즉 인 미세면들의 밀도(concentration)를 결정하는 데 도움을 줍니다. 이것이 방정식 4에서 법선 분포 함수가 로 표기되는 이유입니다.
함수는 스페큘러 하이라이트(specular highlight)의 크기, 밝기, 그리고 모양을 결정합니다. 그래픽스 문헌에는 여러 가지 다른 법선 분포 함수들이 등장합니다. 많은 함수가 일종의 "거칠기(roughness)" 또는 분산(variance) 매개변수를 가지며 다소 가우스(Gaussian) 분포와 유사한 형태를 띱니다(이방성 함수들은 일반적으로 두 개의 분산 매개변수를 가지며, 최근 발표된 일부 등방성 함수들도 마찬가지입니다 [4, 7, 42]).
표면 거칠기가 감소할수록 전체 표면 법선 주변으로 미세면 법선 의 밀집도가 증가하며, 이에 따라 의 값은 매우 커질 수 있습니다(극한의 경우인 완벽한 거울에서는 일 때 값이 무한대가 됩니다). Walter 등 [62]은 분포 함수의 올바른 정규화(normalization)에 대해 논의하고 몇 가지 예시를 제시하고 있으며, 다른 논문들 [2, 3, 4, 7, 38, 42, 63]에서도 더 많은 예시를 찾아볼 수 있습니다.
쉐도잉-마스킹 함수 (Shadowing-Masking Function)
쉐도잉-마스킹 함수 는 BRDF 문헌에서 종종 기하학적 함수(geometry function)라고도 불립니다. 의 값은 주어진 법선 을 가진 미세면이 빛의 방향 과 시야 방향 양쪽에서 모두 보일 확률을 나타냅니다. 미세면 BRDF에서 은 로 대체됩니다(이전 두 항과 같은 이유로). 함수 는 확률을 나타내므로 스칼라(scalar)이며 0과 1 사이로 제한됩니다. 와 마찬가지로 문헌에는 에 대한 다양한 해석적 표현식이 존재하며 [2, 3, 12, 13, 35, 38, 62], 이들은 일반적으로 표면의 단순화된 모델에 기반한 근사식입니다. 쉐도잉-마스킹 함수는 일반적으로 BRDF에 새로운 매개변수를 도입하지 않습니다. 매개변수가 없거나 함수의 거칠기(roughness) 매개변수를 사용합니다. 많은 경우 쉐도잉-마스킹 함수는 방정식 4의 분모를 부분적으로 상쇄하며, 이를 와 같은 다른 표현식으로 대체합니다.
쉐도잉-마스킹 함수는 BRDF 에너지 보존에 필수적입니다. 이 항이 없으면 BRDF는 받는 것보다 더 많은 빛 에너지를 반사할 수 있습니다. 미세면 BRDF 유도의 핵심은 활성 표면적(빛 에너지를 에서 로 반사하는 미세면이 덮고 있는 표면적)과 전체 표면적(거시적 표면의) 사이의 비율입니다. 쉐도잉과 마스킹이 고려되지 않으면 활성 면적이 전체 면적을 초과할 수 있으며, 이는 명백히 불가능합니다. 이는 BRDF가 에너지를 보존하지 못하게 만들고, 어떤 경우에는 그 양이 엄청날 수 있습니다(그림 25 참조).
미세면 모델의 한계 (Limitations of the Microfacet Model)
미세면 모델은 회절(diffraction)이나 간섭(interference)과 같은 뚜렷한 파동 광학(wave optics) 효과를 고려하지 않습니다. 이러한 효과는 프로덕션 렌더링에서 자주 발생하지 않으므로 실제로는 큰 문제가 되지 않습니다. 이러한 효과가 발생할 때는 물리 기반 모델보다 주로 임시방편(ad-hoc) 기술을 사용하여 해결합니다. 더 미묘한 파동 광학 효과는 가시광선 파장에 가까운 크기의 "매끄러운 표면" 특징이나, 스침각(grazing angles)에서 단축 효과로 인해 효과적으로 작아지는 더 큰 표면 특징으로 인해 발생할 수 있습니다. 이러한 효과를 다루는 발표된 모델들은 일반적으로 완전한 파동 광학 모델이었으며, 복잡성 때문에 프로덕션에서 많이 사용되지 않았습니다. 이러한 효과를 다루면서도 더 프로덕션 친화적인 모델의 개발이 필요합니다. 광학 공학 분야의 유망한 모델들이 이미 그래픽스 문헌에 영향을 미치기 시작했습니다.
그림 25: 위쪽에는 평평한 거시적 표면(macroscopic surface)이 녹색으로, 울퉁불퉁한 미시적 표면(microscopic surface)은 파란색으로 표시되어 있습니다. 인 미세면(facet)들은 빨간색으로 표시됩니다. 거시적 표면 면적(이 2D 측면 그림에서는 길이)을 시야 방향으로 투영한 것(즉, 단축된 표면 면적)은 왼쪽 상단에 녹색 선으로 표시됩니다. 개별 빨간색 미세면들의 투영된 면적은 별도의 빨간색 선들로 표시됩니다. 왼쪽 아래에서는 마스킹(masking)을 고려하지 않고 빨간색 미세면들의 면적을 합산했는데, 그 결과 활성 면적(active area)이 전체 면적보다 커지게 됩니다. 이는 비논리적이며, 더 중요하게는 BRDF가 받은 것보다 더 많은 에너지를 반사하는 결과를 초래할 수 있습니다. 오른쪽에서는 빨간색 영역들이 마스킹을 고려하는 방식으로 결합된 것을 볼 수 있습니다. 겹치는 영역들은 더 이상 중복해서 계산되지 않으며, 올바른 활성 면적이 전체 면적보다 작다는 것을 확인할 수 있습니다. 시야각이 낮아지면 이 효과는 더욱 두드러질 것입니다. 마스킹 효과를 무시하면 BRDF가 받은 에너지의 수천 배 이상을 반사하게 될 수 있습니다(각도가 90°로 갈수록 반사되는 에너지의 양은 무한대로 갑니다).
미세면 모델은 표면 미세 기하학(microgeometry)에 대한 제한된 모델에 기초하고 있으며, 몇 가지 명시되지 않은 가정을 포함합니다. 예를 들어, NDF의 정의는 미세면 배향의 가시적 분포가 관찰 방향에 따라 변하지 않는다고 가정합니다. 이는 미세면의 높이와 법선이 상관관계가 없다(uncorrelated)고 가정하는 것과 동일합니다. 그러나 이 가정이 항상 참인 것은 아니며, BRDF에 영향을 줄 수 있습니다. 원래는 균일하게 거칠었지만 튀어나온 부분이 마찰에 의해 연마된 표면을 생각해 보십시오. 스치는 각도(glancing angles)에서는 튀어나온 부분만 보이므로, 표면이 다른 각도에서보다 효과적으로 더 매끄럽게 보입니다. 그림 26을 참조하십시오.
그림 26: 높이와 배향 사이에 강한 상관관계가 있는 표면(튀어나온 영역은 매끄럽고, 낮은 영역은 거칠다). 위: 빛의 방향이 거시적 표면 법선에 가깝습니다. 많은 광선이 거친 구덩이에 도달하여 매우 다양한 방향으로 산란됩니다. 아래: 빛이 스치는 방향에서 옵니다. 구덩이는 가려지므로 대부분의 광선은 표면의 매끄러운 부분에서 반사됩니다. 이로 인해 유효 NDF가 조명 각도에 따라 강하게 변합니다. (이미지 출처: "Real-Time Rendering, 3rd edition", A K Peters의 허가를 받아 사용됨)
최근 연구에 따르면 기본 미세면 모델의 대안적 구성이나 수정이 측정된 데이터에 더 잘 맞는 경우가 있으며, 이는 위에서 논의된 효과들의 조합 때문일 가능성이 높습니다. 이러한 결과를 이해하려면 더 많은 연구가 필요합니다.
미세면 이론이 결국에는 BRDF 모델링의 이론적 기초로서 대체되거나 최소한 확장되어야 할지도 모릅니다. 그러나 현재로서는 우리가 가진 가장 잘 이해되고 가장 성공적인 도구입니다. 이러한 이유로 이 노트의 나머지 부분은 미세면 모델에 초점을 맞출 것입니다.
Subsurface Reflectance (Diffuse Term)
문헌에는 표면 하 국소 반사를 위한 여러 모델이 존재합니다. 그중 램버트(Lambertian) 모델 [40]은 가장 간단하고 널리 사용됩니다. 램버트 BRDF는 사실 상수 값입니다. 잘 알려진 코사인 항, 즉 요소는 BRDF의 일부가 아니라 반사 방정식의 일부입니다(방정식 1 참조). 램버트 BRDF의 정확한 값은 다음과 같습니다:
여기서 는 난반사로 반사되는 빛의 비율입니다. 와 마찬가지로, 이는 0~1 범위의 RGB 값이며 일반적으로 "표면 색상"으로 인식되는 것과 밀접하게 일치합니다. 이 매개변수는 보통 디퓨즈 색상(diffuse color)이라고 불립니다.
다른 디퓨즈 모델들은 램버트 모델이 다루지 않는 현상들을 모델링하려고 시도합니다. 예를 들어, 낮은 각도(grazing angles)에서 스페큘러 항과 디퓨즈 항 사이의 에너지 교환이 있습니다. 디퓨즈 항은 표면 하 반사를 모델링하므로 표면에서 반사되지 않고 남은 에너지만 사용할 수 있습니다. 즉, 스페큘러 항이 들어오는 빛 에너지에 대해 우선권을 가지고, 디퓨즈 항은 남은 것만 사용합니다. 프레넬 효과로 인해 스침각에서 스페큘러 반사율이 증가하므로, 디퓨즈 항은 해당 각도에서 감소해야 합니다. 이러한 트레이드오프를 모델링하는 방법은 간단한 접근(디퓨즈 항에 1에서 프레넬 요소를 뺀 값을 곱하기)부터 더 복잡하고 정확한 접근법 [2, 3, 35, 54]까지 다양합니다.
또 다른 디퓨즈 모델들은 표면 거칠기의 영향을 설명하려고 시도합니다. 이 현상에서 규모가 어떤 역할을 하는지 이해하는 것이 중요합니다. 표면 하 산란은 빛이 다시 방출되기 전에 표면 아래에서 일정 거리를 이동하게 합니다. 이 거리보다 작은 표면 불규칙성은 표면 하 반사에 영향을 미치지 않습니다. 표면의 어떤 지점에서 방출되는 빛은 그 불규칙성보다 더 큰 영역에 흩어진 여러 지점에서 표면으로 들어온 빛이기 때문입니다. 그러나 일부 표면은 산란 거리보다 더 큰 규모에서 거칠며, 이러한 표면은 램버트 모델과는 눈에 띄게 다른 외관을 보입니다. 이러한 경우를 다루기 위해 다양한 모델이 개발되었습니다 [27, 50].
Other Terms
앞서 언급했듯이, 디퓨즈 항(다중 표면 하 산란)과 미세면 항(단일 반사 표면 반사율)에 의해 모델링되는 현상의 틈새에 빠지는 두 가지 반사 현상이 있습니다.
하나는 표면 단일 산란(subsurface single-scattering)으로, 경우에 따라 전체 반사율에 상당히 기여할 수 있으며 재질의 표면 및 표면 하 속성 모두에 영향을 받는 항을 추가합니다.
다른 현상은 다중 표면 반사(multiple surface bounces)이며, 거친 금속과 같은 일부 표면에서 중요할 수 있습니다. 미세면 모델은 다중 표면 반사를 무시하고 가려진 모든 광선이 손실된다고 가정하므로 실제 세계의 거동에 비해 에너지 손실을 유발합니다. 이러한 경우를 다루기 위해 추가 항을 도입하는 것이 바람직할 수 있으나, 이러한 현상에 대해 잘 발표된 모델이 부족한 실정입니다.
영화 및 게임 제작을 위한 물리 기반 쉐이딩 모델 구현
이전 섹션에서는 표면 쉐이딩을 설명하는 수학적 모델을 다뤘습니다. 이번 섹션에서는 이러한 모델이 영화 및 게임 제작에서 어떻게 사용되는지 살펴봅니다.
쉐이딩 모델을 구현하려면 조명 광원과 결합해야 합니다. 다음 섹션에서는 가장 일반적인 광원 유형과 이를 BRDF와 결합하는 방법을 다룹니다.
(각주 7: 이로 인해 BRDF는 슐릭 프레넬 항의 일부를 보간 인자로 사용하여 디퓨즈 항과 스페큘러 항 사이의 선형 보간 형태를 갖게 됩니다.)
일반 조명
가장 일반적인 경우, BRDF는 모든 방향에서 들어오는 빛에 대해 적분되어야 합니다. 여기에는 하늘빛과 장면 내 다른 물체의 정확한 반사가 포함됩니다. 이를 완전히 해결하려면 몬테카를로 레이 트레이싱과 같은 전역 조명 알고리즘이 필요합니다. 이러한 알고리즘에 대한 자세한 설명은 본 강연의 범위를 벗어나며, 다양한 참고 문헌([14, 20, 26, 36, 37])에서 더 자세한 내용을 찾을 수 있습니다.
이미지 기반 조명
이미지 기반 조명은 일반적으로 먼 거리 조명을 나타내는 환경 맵 형태로 저장됩니다. 환경 맵은 매우 매끄러운(거울 같은) 물체의 반사를 쉽게 표현할 수 있습니다. 프레넬 반사율은 방정식 5를 통해 모델링됩니다(빛 벡터를 시야 벡터로 대체—거울 법선에 대한 각도는 동일하게 유지되므로 둘은 동등합니다).
표면 법선이 시야 방향에 대해 후면을 향할 때(보간된 버텍스 노멀이나 범프 매핑으로 인해 발생) 문제가 발생할 수 있습니다. 이는 반사 방향과 프레넬 반사율 값 모두에 영향을 미칩니다. 잘못된 반사 방향은 거의 눈에 띄지 않습니다. 앞서 언급했듯이, 시야와 법선 사이의 음수 내적을 피하기 위해 0으로 클램프하거나 절댓값을 사용할 수 있습니다. 이 경우에는 절댓값을 취하는 것이 더 바람직합니다. 클램핑과 달리, 절댓값을 취하면 극단적인 스침각과 관련된 프레넬 값이 좁은 픽셀 띠로 제한되며, 이는 시각적으로 더 그럴듯합니다.
환경 맵은 임의의 BRDF와 함께 사용될 수도 있지만, 정확한 결과를 얻으려면 노이즈를 피하기 위해 많은 샘플이 필요할 수 있습니다. 중요도 샘플링 [11]은 샘플 수를 관리 가능한 수준으로 유지하는 데 도움이 됩니다(적어도 영화 렌더링의 경우). 환경 맵 사전 필터링 [31, 33, 34]은 제작에서 사용할 수 있는 또 다른 접근 방식으로, 그 자체로 사용되거나 [41] (근사 해법이지만 게임에 적합함) 중요도 샘플링과 함께 사용됩니다 [10, 11].
이론적으로 환경 맵은 물체 근처 지점에서 본 장면(반사하는 물체 제외)을 나타내며, 반사하는 물체가 볼록하고 반사된 장면에서 멀리 떨어져 있는 경우에만 물체의 반사에 사용할 수 있습니다. 실제 환경에서는 이러한 가정이 자주 깨집니다. 볼록하지 않은 물체는 환경을 스스로 가려야 합니다. 이는 무시되거나(게임에서 흔함), AO(Ambient Occlusion) [24]와 같은 간단한 차폐 항으로 근사되거나, 물체의 일부 표현에 대해 광선을 추적하여 더 정확하게 모델링될 수 있습니다 [48, 56].
반사된 물체는 서로 다른 표면 지점에서 눈에 띄는 시차를 가질 만큼 가까울 수도 있습니다(특히 반사하는 물체가 클 때 흔함). 또한 환경 맵은 장면의 다른 위치에서 샘플링되거나 심지어 완전히 다른 장면에서 샘플링될 수도 있습니다.
많은 경우, 인간의 눈은 시차나 샘플 위치에서 벗어난 환경 맵 사용으로 인한 오류에 둔감한 것으로 밝혀졌습니다. 전체적인 색상과 강도가 정확하다면, 반사되는 모양이 완전히 잘못되어도 시청자가 눈치채지 못하는 경우가 많습니다. 환경 맵의 전체 색상과 강도를 로컬 장면 조명과 일치시키는 것은 간단하며 [41], 이는 많은 상황에서 환경 맵을 효과적인 도구로 만듭니다. 잘못된 반사가 눈에 띄는 상황(예: 반짝이는 바닥, 레이싱 게임의 플레이어 차량, 영화의 반짝이는 금속 영웅 캐릭터)에서는 수정 단계로 반사를 워핑할 수 있습니다 [39, 56].
면 광원 (Area Light Sources)
태양이나 램프와 같은 광원은 강도와 면적을 모두 가집니다. 이론적으로는 환경 맵 내의 HDR 텍셀 패치로 처리할 수 있지만, 별도로 다루면 여러 장점이 있습니다. 면 광원은 이미지 기반 조명보다 그림자 계산이 쉽고, 시차가 올바르게 처리되며, 아티스트가 환경 맵을 편집하지 않고도 조명의 위치, 밝기, 크기를 쉽게 조정할 수 있습니다 [56].
임의의 BRDF 쉐이딩 또한 이미지 기반 조명보다 면 광원을 사용하는 것이 더 쉽습니다. 다중 중요도 샘플링 [61]은 노이즈를 크게 줄일 수 있습니다 [45]. 실시간 근사법 [48]도 존재하지만, 가장자리가 부드러운 조명을 모델링하므로 매끄러운 표면에서 나타나는 뚜렷한 빛의 가장자리라는 중요한 시각적 단서를 놓칩니다.
점 광원 (Punctual Light Sources)
(특히 게임에서, 많은 영화에서도 사용되었지만) 면 광원(area light sources)을 **점 광원(punctual light sources)**으로 근사하는 것은 흔한 일입니다. 이들은 고전적인 컴퓨터 그래픽스의 점(point), 직사(directional), 스포트(spot) 조명들입니다(더 복잡한 변형들도 사용됩니다 [5]). 이들은 무한히 작고 무한히 밝기 때문에 물리적으로 실현 가능하거나 사실적이지는 않지만, 많은 경우에 합리적인 결과를 만들어내며 계산상 편리합니다.
점 광원은 조명 색상 와 조명 방향 벡터 로 매개변수화됩니다. 아티스트의 편의를 위해, 는 조명 강도의 직접적인 방사 측정치(radiometric measure)에 해당하지 않습니다; 대신 이는 흰색 램버트(Lambertian) 표면이 표면 법선과 평행한 방향()에서 조명을 받았을 때 갖게 될 색상으로 지정됩니다. 우리가 보았던 다른 색상 물리량과 마찬가지로, 는 분광(RGB) 값을 갖지만, 그들과 달리 범위에 제한이 없습니다(unbounded).
점 광원의 주된 장점은 여기서 보여줄 것처럼 반사 방정식(방정식 1)을 크게 단순화한다는 것입니다. 우리는 를 중심으로 작은 각도 범위 을 갖는 아주 작은 면 광원(tiny area light source)을 정의하는 것으로 시작할 것입니다. 이 작은 면 광원은 들어오는 방사 휘도 함수 로 쉐이딩되는 표면 지점을 비춥니다. 들어오는 방사 휘도 함수는 다음 두 가지 속성을 가집니다:
첫 번째 속성은 와 보다 큰 각도를 이루는 어떤 조명 방향에서도 빛이 들어오지 않음을 말합니다. 다시 말해, 조명은 각도 범위 밖으로는 어떤 빛도 생성하지 않습니다. 두 번째 속성은 로 두고 방정식 1과 7을 적용하여 의 정의로부터 나옵니다. 방정식 9는 이 0으로 갈 때의 극한에서도 여전히 성립합니다:
이고 이므로, 우리는 이라고 가정할 수 있으며 이는 다음을 제공합니다:
방정식 11은 값과 독립적이라는 점에 유의하십시오. 따라서 이는 단지 일 때뿐만 아니라 모든 유효한 조명 배향에 대해 참입니다. 간단한 재배열을 통해 극한에서의 적분 값을 분리해 낼 수 있습니다:
이제 우리는 이 작은 면 광원을 일반적인 BRDF에 적용하고, 이 0으로 갈 때의 거동을 살펴볼 것입니다:
방정식 12를 방정식 13의 오른쪽 부분에 대입하면 최종적인 점 광원 방정식을 얻습니다:
원래의 반사 방정식과 비교했을 때, 우리는 적분을 훨씬 계산하기 저렴한 단일 BRDF 평가(single BRDF evaluation)로 대체했습니다. 게임에서는 후면(back-facing) 조명 기여를 건너뛰기 위한 편리한 방법으로 이 방정식의 내적(dot product)을 0으로 클램프(clamp)하는 것이 일반적입니다.
직사광(태양 같은)의 경우, 와 는 씬 전체에서 일정합니다. 점 조명이나 스포트라이트와 같은 다른 점 광원 유형의 경우, 둘 다 변하게 됩니다. 실제로는 가 거리의 역제곱(inverse square distance)에 비례하여 감소해야 하지만, 실제로는 성능상의 이유(유한한 거리에서 0이 되는 감쇠 함수를 사용하면 먼 물체에 대한 조명 계산을 컬링(culling)할 수 있음) 또는 예술적 선호 때문에 다른 감쇠 함수(falloff functions)가 종종 사용됩니다.
만약 여러 개의 점 광원이 표면을 비추고 있다면, 방정식 14는 여러 번 계산되어 그 결과들이 합산됩니다. 점 광원들은 그 자체만으로는 거의 사용되지 않는데, 이는 다른 방향에서 오는 조명이 없다는 것이 눈에 띄기 때문이며, 특히 스페큘러가 강한 표면에서 그렇습니다. 이러한 이유로 점 광원은 일반적으로 어떤 종류의 앰비언트(ambient) 또는 이미지 기반 조명(image-based lighting)과 결합됩니다. 후자는 이미 논의되었으며, 전자는 다음 섹션에서 논의될 것입니다.
Ambient Lighting
앰비언트 조명은 **저주파 조명(low-frequency lighting)**의 수치적 표현을 말합니다. 가장 단순한 형태는 모든 방향에 대한 단일 상수 조명 색상 및 강도이며, 더 복잡한 표현으로는 **구면 조화 함수(Spherical Harmonics, SH)**가 있습니다. 이러한 조명 환경은 주로 디퓨즈 BRDF 항에만 적용되고, 더 고주파의 이미지 기반 조명은 스페큘러 항에 적용됩니다. 그러나 앰비언트 조명 환경을 스페큘러 BRDF 항에 적용하는 것도 가능하며, 이를 수행하는 대부분의 방법은 게임 산업에서 유래했습니다.
Building a Physically Based Shading Model
이 섹션에서는 처음부터 모델을 구축하는 것에 대해 논의합니다.
물리 기반 쉐이딩 모델을 구축할 때 몇 가지 선택이 필요합니다. 먼저 디퓨즈 모델을 선택해야 하고, 미세면 스페큘러 모델을 위한 -(NDF) 및 (쉐도잉-마스킹) 함수도 선택해야 합니다. 이 섹션의 나머지 부분에서는 두 가지 스페큘러 함수에 초점을 맞춥니다.
와 함수는 독립적(independent)으로 선택할 수 있습니다. 즉, 서로 다른 미세면 모델에서 가져와 조합할 수 있습니다. 새로운 미세면 BRDF 모델을 제안하는 대부분의 논문은 새로운 및/또는 함수를 도입하는 것으로 이해하면 됩니다.
Choosing an NDF
가장 일반적인 NDF는 **등방성(isotropic)**입니다. 즉, 거시적 표면 법선 을 축으로 회전 대칭을 이룹니다. 따라서 이러한 NDF는 단일 변수(미세면 법선 과 사이의 각도)의 함수로 정의됩니다. 셰이더에서는 내적을 사용하여 쉽게 계산할 수 있으므로 각도의 코사인 값으로 다루는 것이 가장 편리합니다. 이러한 이유로 등방성 NDF는 일반적으로 의 함수로 작성됩니다. 문헌에는 NDF로 사용하기 위한 다양한 함수가 제안되었습니다. 그러나 미세면 BRDF의 일부로 사용되려면 모두 올바르게 **정규화(normalized)**되어야 합니다. 게임 및 영화 제작에서 몇몇 이방성(anisotropic) NDF [2, 3, 63]가 사용되기도 했지만, 여기서는 논의를 등방성 NDF로 제한하겠습니다.
모든 미세면 분포는 미세면 면적의 합이 거시적 표면(macrosurface) 면적과 같아야 한다는 조건을 만족해야 합니다. 더 정확하게는, 미세면들의 부호 있는 투영 면적(signed projected areas)의 합이 거시적 표면의 부호 있는 투영 면적과 같아야 하며, 이는 모든 시야 방향에 대해 성립해야 합니다 [62]. 수학적으로 함수는 임의의 에 대해 다음 방정식을 만족해야 합니다:
적분이 반구(hemisphere)가 아니라 전체 구(sphere)에 대해 이루어지며, 코사인 항이 클램프(clamp)되지 않는다는 점에 유의하십시오. 즉, 후면을 향하는 표면은 음의 기여를 합니다. 이 방정식은 높이 맵(heightfields)뿐만 아니라 모든 종류의 미세 표면에 대해 성립합니다. 인 특수한 경우:
직접적인 BRDF 평가를 위해서는 NDF가 계산하기 저렴한 것이 바람직합니다(특히 게임 및 기타 실시간 렌더링 애플리케이션에서). 레이 트레이싱의 경우 중요도 샘플링(importance sampling)의 용이성이 무엇보다 중요합니다.
여기서 검토할 모든 미세면 분포는 높이 맵(heightfield) 표면을 모델링하므로, 인 모든 방향에 대해 0과 같습니다. 전면(front-facing) 조명 및 시야 방향만 강제하는 렌더러에서는 하프 벡터(NDF가 평가되는 벡터) 역시 전면을 향하므로 이것이 문제가 되지 않습니다. 그러나 노멀 매핑으로 인해 후면을 향하는 시야 벡터가 발생할 수 있으며, 따라서 하프 벡터도 후면을 향할 수 있습니다. 이러한 경우 NDF는 0으로 평가되어야 합니다. 90도에서 0인 NDF의 경우, 단순히 내적 을 0으로 클램프(clamp)하면 해결됩니다. 다른 NDF는 후면 방향에 대해 명시적으로 0으로 설정해야 할 수도 있습니다. 내적이 NDF의 분모에 나타날 때 또 다른 문제가 발생합니다. 이러한 경우 0으로 나누기(divide-by-zero) 문제를 피하기 위해 작은 엡실론 값을 더해야 할 수 있습니다.
Blin Phong
퐁 셰이딩 방정식 [51]은 컴퓨터 그래픽스 문헌에서 제안된 가장 초기(그리고 확실히 가장 영향력 있는) 셰이딩 방정식 중 하나입니다. 이는 몇 년 후 블린(Blinn)에 의해 미세면 BRDF 구조에 더 잘 맞도록 수정되었습니다 [6]. 이 수정은 일반적으로 Blinn-Phong BRDF라고 불리지만, 우리는 결과적인 NDF를 단순히 "Phong NDF"라고 부를 것입니다. 블린은 정규화 계수를 명시하지 않았지만, 쉽게 계산할 수 있습니다:
지수 는 Phong NDF의 거칠기 매개변수입니다. 높은 값은 매끄러운 표면을 나타내고 낮은 값은 거친 표면을 나타냅니다. 매우 매끄러운 표면의 경우 값이 임의로 높아질 수 있으며(완전한 거울은 를 요구함), 최대한 무작위한 표면(균일 NDF)은 를 0으로 설정하여 얻을 수 있습니다. 매개변수는 매우 비균일합니다. 작은 값에서는 작은 수치 변화가 거대한 시각적 효과를 가져오지만, 큰 값에서는 시각적 영향 없이 급격하게 변경될 수 있습니다. 따라서 아티스트가 직접 조작하거나 페인팅하기에는 불편합니다. 이러한 이유로, 아티스트가 와 비선형적으로 관련된 값을 조작하게 하는 것이 일반적입니다. 예를 들어 (은 주어진 쇼나 게임에서 의 상한값)와 같은 값입니다. 이러한 "인터페이스 함수"는 BRDF 고유 매개변수의 동작이 프로덕션 사용에 편리하지 않을 때 유용합니다. 그림 27은 로그 스케일로 균등하게 간격을 둔 코사인 거듭제곱에 대한 퐁 분포 곡선을 보여줍니다.
The Beckmann Distribution
블린이 퐁 셰이딩 함수를 미세면 NDF로 조정한 논문 [6]에서, 그는 두 가지 다른 NDF도 제안했습니다. 그중 하나는 Torrance-Sparrow BRDF [59]에서 유도되었습니다. Torrance-Sparrow NDF를 퐁과 비교할 때, 훨씬 더 높은 계산 비용에 비해 전반적인 거동이 매우 유사해 보였습니다(자세한 내용은 이 노트와 함께 제공되는 Mathematica 노트북 참조). 이는 다소 막다른 길처럼 보였습니다. 쿡(Cook)과 토런스(Torrance)의 이후 연구 [12, 13]는 이를 일반적으로 베크만 분포(Beckmann distribution)라고 불리는 다른 NDF로 대체할 것을 제안했습니다. 올바르게 정규화되었을 때, 베크만 분포는 다음과 같은 형태를 가집니다:
베크만 분포는 어떤 면에서는 퐁 분포와 매우 유사하지만, 다른 면에서는 근본적으로 다릅니다. 두 매개변수의 동등한 값은 관계식 [62]를 사용하여 찾을 수 있습니다. 비교적 매끄러운 표면( 정도)에서는 꽤 잘 일치합니다. 참고로 더 큰 값은 더 거친 표면에 해당하며, 이는 매개변수와 반대입니다. 그림 28의 왼쪽에서 볼 수 있듯이, 더 매끄러운 표면( 정도)에서는 일치가 거의 완벽합니다.
그림 27: 로그 스케일로 간격을 둔 코사인 거듭제곱에 대한 퐁 분포. 왼쪽: (코사인 거듭제곱) 값이 0에서 8까지 변함. 가운데: 16에서 128까지. 오른쪽: 256에서 2048까지.
x축: 각도 (라디안) - n(Normal)과 h(m)-mircofacet 사이의 각도
y축: 퐁 분포 함수 값 - 해당 각도에서의 반사광 세기
그림 28: 베크만(파란색)과 퐁(빨간색) 분포의 비교. 왼쪽: 매끄러운 표면( 범위 0.2~0.5)에서는 둘이 매우 유사함을 볼 수 있음. 오른쪽: 중간 정도로 거친 표면( 범위 0.6~1.0)에서는 다소 차이가 벌어짐을 볼 수 있음.
베크만이 퐁과 강한 유사성을 보이면서 계산 비용이 다소 높다는 점을 고려하면, 이 또한 막다른 길처럼 보일 수 있습니다. 그러나 두 분포 사이에는 서로 다른 매개변수화에서 비롯되는 근본적인 차이가 있습니다. 매개변수는 미세면의 제곱 평균 제곱근(RMS, root mean square) 기울기(slope)와 같습니다. 따라서 를 증가시키는 것은 평균 미세면 기울기를 증가시킨다는 의미입니다. 이는 를 감소시켜 얻는 "무작위성 증가"와는 다른 의미의 "거칠기"입니다. 퐁 분포는 "최대로 거친" 매개변수 값()을 가지며, 이는 미세면 법선이 위쪽 반구 어디든 가리킬 확률이 동일한 균일 분포에 해당합니다. 반면 이에 대응하는 베크만 값()은 특별한 의미가 없습니다.
GGX / Trowbridge-Reitz
이는 단지 RMS 미세면 기울기가 1, 즉 임을 의미합니다. 중간 정도로 거친 값들에 대해, 베크만은 퐁처럼 평평해지는 대신(그림 28의 오른쪽 참조) 분포 중간에 "함몰(dip)"이 생깁니다. 가 1을 넘어 증가하면 높은 RMS 미세면 기울기를 가진 "초거칠기(super-rough)" 표면을 얻게 됩니다. 이들은 균일 분포보다 덜 무작위하지만 덜 평평하다는 의미에서 더 "거칩니다". 곡선을 보면(그림 29), 거칠기가 증가함에 따라 분포의 "함몰"이 90도에서 "역 피크(reverse peak)"(실제로는 고리 형태)로 변하는 것을 볼 수 있습니다.
그림 29: 베크만 분포는 가파른 경사의 미세면이 대다수인 "초거칠기(super-rough)" 표면을 모델링할 수 있습니다 (이 플롯에서 값의 범위는 1에서 7).
이러한 "초거칠기" 분포가 실제 표면을 모델링하는 데 유용할까요? 아마도 많은 뾰족한 위쪽 방향 섬유로 구성된 표면은 그러한 분포를 가질 것입니다. 벨벳(velvet) 미세구조가 어느 정도 이를 닮은 것으로 보입니다 [1, 64]. 다른 재질들도 그럴 수 있습니다. 어쨌든, 베크만 분포의 높은 값에서의 이러한 거동은 알아두면 유용합니다.
블린의 논문 [6]에서 논의된 마지막 NDF(그리고 블린이 사용을 권장한 것)는 트로우브릿지와 라이츠(Trowbridge and Reitz) [60]의 것입니다. 블린은 트로우브릿지-라이츠 NDF에 대해서도 정규화 계수를 명시하지 않았습니다. 하지만 이후의 논문 [62]에서 올바른 계수를 제공합니다(이를 "GGX 분포"라고 부름). "GGX" 분모는 약간 더 복잡하지만 동등한 형태를 가지며, 우리는 여기서 원래의 더 간단한 형태를 사용합니다:
그림 30은 다양한 매개변수 값에 걸친 분포의 거동을 보여줍니다. 매개변수 제어는 값을 증가시키면 표면이 거칠어진다는 점에서 베크만과 유사합니다. 트로우브릿지-라이츠는 균일 분포(퐁처럼)와 "초거칠기" 표면(베크만처럼)을 모두 모델링할 수 있습니다.
트로우브릿지-라이츠 분포를 퐁 분포와 비교할 때(그림 31), 두 분포가 근본적으로 다른 모양을 가지고 있음이 분명합니다. 파라미터 공간 전반에 걸쳐, 트로우브릿지-라이츠는 퐁보다 일관되게 더 좁은 피크(narrower peaks)를 가지면서도 그 피크를 둘러싼 더 긴 "꼬리(tails)"를 가집니다(하이라이트 중심에서 동일한 값을 산출하는 파라미터 값과 비교했을 때).
셰이딩 모델은 실제 표면을 모델링할 때 잘 작동해야 합니다. 여러 연구자들 [17, 44, 46]은 측정된 BRDF 데이터 [15, 16, 47]를 발표했습니다. 다른 연구자들은 이 측정된 데이터(또는 그들 자신의 측정값)를 여러 셰이딩 모델과 비교했습니다 [7, 43, 65].
그림 32: 다양한 매개변수 값을 가진 정규화된 ABC NDF. 윗줄의 각 플롯은 (B) 매개변수를 1에서 1000까지 변화시킵니다( (C) 값은 일정하게 유지). 아랫줄의 각 플롯은 (C) 매개변수를 0.1에서 1.5까지 변화시킵니다( (B) 값은 일정하게 유지). 이 플롯에서 사용된 매개변수 값의 범위는 Löw 등[42]이 피팅한 Matusik 데이터셋 재질의 대부분을 포괄합니다.
그림 33: 매개변수 값을 변경하면 ABC 분포(보라색)가 트로우브릿지-라이츠(녹색, 왼쪽)와 퐁(점선 빨간색, 오른쪽) 모두와 일치하는 것을 볼 수 있습니다. 왼쪽은 값이 0.3에서 0.7 사이인 트로우브릿지-라이츠와 값이 1.75인 ABC를 보여줍니다( 값들은 대응하는 트로우브릿지-라이츠 곡선의 피크와 일치하도록 수동 조정됨). 오른쪽은 값이 약 2에서 20 사이인 퐁과 값이 1000인 ABC를 보여줍니다(ABC는 가 무한대로 갈 때 퐁에 점근적으로 접근하는 것으로 보임; 값들은 왼쪽 플롯과 유사하게 수동 조정됨). 더 매끄러운 표면은 표시되지 않았지만, 대응 관계는 이들에 대해서도 성립합니다. 퐁에 잘 맞추기 위해 필요한 값들은 Löw 등[42]의 Matusik 데이터베이스 피팅에서 사용된 어떤 값보다 훨씬 높습니다. 이는 실제 세계의 재질들이 가우스(Gaussian) 법선 분포를 갖지 않는 경향이 있음을 나타낼 수 있습니다.
The ABC Distribution
많은 재질들이 기존 모델들로는 잘 모델링되지 않음을 보여줍니다. 최근에는 측정된 표면에 더 잘 맞는 새로운 모델들을 개발하기 위한 작업이 수행되었습니다 [4, 7, 42]. 우리는 이 최근 연구에서 제안된 두 가지 분포에 대한 설명으로 NDF에 대한 조사를 마칠 것입니다. 세 번째 모델은 이 코스의 다른 프레젠테이션 중 하나에서 다룹니다 [7].
Löw 등 [42]은 Church 등 [9]이 처음 소개한 ABC 분포를 두 가지 다른 방식으로 사용합니다. ABC 분포는 표면 높이 필드의 분광 파워 분포(spectral power distribution)라는 원래 역할(파동 효과를 고려하는 매끄러운 표면 BRDF를 위함)로 사용되기도 하고, 미세면 법선 분포 함수(NDF)로 용도 변경되어 사용되기도 합니다. 비정규화된(unnormalized) 분포 함수는 다음과 같은 형태를 가집니다:
이는 두 개의 매개변수 (원 논문의 "B" 매개변수에 해당)과 (원 논문의 "C" 매개변수에 해당—"A" 매개변수는 스케일 팩터이므로 정규화에 포함됨)를 가집니다. 저자들은 정규화 계수를 공개하지 않았지만, 저는 Mathematica를 사용하여 생성할 수 있었습니다:
정규화된 BRDF는 와 같습니다. 이 정규화 계수는 다소 복잡하며, 훨씬 더 저렴한(계산 비용이 적은) 함수를 이에 맞추어(fitting) 사용할 수 있을 가능성이 높습니다. 게다가, 정규화 계수는 과 에서 특이점(singularities)을 가집니다(이는 그러한 특이점을 갖지 않을 것으로 추정되는 더 간단한 곡선을 피팅해야 하는 또 다른 이유입니다).
그림 32: 다양한 매개변수 값을 가진 정규화된 ABC NDF. 윗줄의 각 플롯은 (B) 매개변수를 (1에서 1000까지) 변화시킵니다 ( (C) 값은 일정하게 유지). 아랫줄의 각 플롯은 (C) 매개변수를 (0.1에서 1.5까지) 변화시킵니다 ( (B) 값은 일정하게 유지). 이 플롯에서 사용된 매개변수 값의 범위는 Löw 등 [42]에 의해 피팅된 Matusik 데이터셋 재질의 대부분을 커버합니다.
그림 32는 두 매개변수에 대해 다양한 값을 가진 ABC NDF를 보여줍니다. 우리가 이전에 보았던 NDF들은 단 하나의 매개변수만 가졌습니다; ABC NDF의 두 매개변수를 변화시키는 것은 다양한 모양을 형성할 수 있게 하여, 측정된 많은 서로 다른 재질들에 대해 향상된 BRDF 피팅을 가능하게 합니다. 약간의 실험을 통해 매개변수의 값을 변경함으로써, ABC 분포가 트로우브릿지-라이츠(Trowbridge-Reitz)와 퐁(Phong)을 모두 흉내 낼 수 있음을 보여줍니다(그림 33).
그림 33: 매개변수의 값을 변경함으로써, ABC 분포(보라색)가 트로우브릿지-라이츠(녹색, 왼쪽)와 퐁(점선 빨간색, 오른쪽) 모두와 일치하는 것을 볼 수 있습니다. 왼쪽은 0.3과 0.7 사이의 값을 가진 트로우브릿지-라이츠와 1.75의 값을 가진 ABC를 보여줍니다(대응하는 트로우브릿지-라이츠 곡선의 피크와 일치하도록 값들이 수동으로 조정됨). 오른쪽은 약 2와 20 사이의 값을 가진 퐁과 1000의 값을 가진 ABC를 보여줍니다(ABC는 가 무한대로 갈 때 퐁에 점근적으로 접근하는 것으로 보입니다; 값들은 왼쪽 플롯과 유사하게 수동으로 조정됨). 더 매끄러운 표면은 표시되지 않았지만, 대응 관계는 그들에 대해서도 성립합니다. 퐁에 잘 맞추기 위해 필요한 값들은 Löw 등 [42]의 Matusik 데이터베이스 피팅에서 사용된 어떤 값보다 훨씬 높다는 점에 유의하십시오. 이는 실제 세계의 재질들이 가우스(Gaussian) 법선 분포를 갖지 않는 경향이 있음을 나타낼 수 있습니다.
매개변수 값을 낮추면 트로우브릿지-라이츠보다 훨씬 더 뾰족한 곡선(더 좁은 피크와 더 긴 꼬리)이 생성됩니다. 이는 그림 34에서 확인할 수 있습니다.
그림 34: 매개변수를 비교적 낮은 값(0.5)으로 설정하면, ABC 분포가 트로우브릿지-라이츠보다 더 뾰족한 모양(더 좁은 피크, 더 긴 꼬리)을 달성할 수 있습니다. 참고로 이 값은 Löw 등 [42]이 Matusik 데이터셋의 몇몇 매트한 재질을 제외한 모든 재질에 피팅한 값보다 낮습니다. 두 플롯 모두 ABC(보라색)와 트로우브릿지-라이츠(녹색)를 비교합니다. 왼쪽은 비교적 거친 표면(에서 사이의 값)을, 오른쪽은 더 매끄러운 재질(에서 사이의 )을 보여줍니다. 참고로 원문에는 오른쪽을 'left'라고 잘못 표기했습니다. 모양의 차이는 더 매끄러운 표면에서 더욱 두드러집니다.
SGD, Shifted Gamma Distribution
이 섹션에서 논의되는 마지막 NDF는 이동 감마 분포(SGD, Shifted Gamma Distribution)입니다. 이는 최근 Bagher 등 [4]의 논문에서 그래픽스 분야에 소개되었으며, 다음과 같은 형태를 가집니다:
여기서 는 다음과 같이 정의됩니다:
는 불완전 감마 함수(incomplete Gamma function)입니다: . 참고로 과 매개변수는 원문 논문에서 각각 와 라고 불립니다.
ABC NDF와 마찬가지로 SGD는 등방성이며 두 개의 매개변수를 가지고 있습니다. 주로 Matusik 데이터베이스 [47]와 같은 측정된 BRDF에 피팅하기 위해 설계되었습니다. 그러나 이것이 사용되는 BRDF는 몇 가지 독특한 성질을 가지고 있습니다. 빨강, 초록, 파랑 채널에 대해 별도의 매개변수가 존재하며, 프레넬 함수는 실제 프레넬과는 상당히 다르게 동작하는 일반화된 곡선입니다 [4]. 이러한 이유로 SGD를 ABC와 같은 다른 NDF들과 직접 비교하기는 어려울 수 있습니다.
예를 들어, 그림 35에서 볼 수 있듯이 SGD NDF는 중간 정도로 매끄러운 표면에서도 0으로 빠르게 떨어집니다. ABC와 같은 다른 NDF들의 특징인 긴 꼬리를 복제할 수 없습니다. 이는 해당 NDF가 사용되는 BRDF의 독특한 특성 중 일부에 의해 보상될 수 있습니다. 또한 그림 35에서 ABC와 달리 SGD NDF가 초거칠기(super-rough) 표면을 모델링할 수 있음을 볼 수 있습니다. 다만 앞서 언급했듯이 이 기능이 얼마나 유용한지는 불분명합니다. 또한 이러한 동작을 생성하는 매개변수 조합은 저자들이 수행한 재질 피팅에서는 발견되지 않았습니다 [4].
그림 35: 다양한 매개변수 값을 가진 정규화된 SGD NDF. 윗줄의 각 플롯은 (논문의 ) 값을 일정하게 유지하면서 (논문의 ) 매개변수를 1.0에서 0.1로 변화시킵니다. 아랫줄의 각 플롯은 () 값을 일정하게 유지하면서 () 매개변수를 0.0에서 1.5로 변화시킵니다. 이 플롯에서 사용된 매개변수 값의 범위는 Bagher 등 [4]에 의해 피팅된 Matusik 데이터셋의 거칠고 중간 정도로 매끄러운 재질들을 커버합니다.
쉐도잉-마스킹 함수 선택하기 (Choosing a Shadowing-Masking Function)
많은 미세면 BRDF는 분자 항 와 분모 항 를 하나의 하위 표현식으로 대체합니다. 를 로 나눈 값에 이름을 붙이는 것이 유용합니다. 분모는 "단축 계수(foreshortening factor)"로 볼 수 있고, 두 부분 모두 가시성과 관련이 있으므로 저는 이를 "가시성 항(visibility term)"이라고 부릅니다.
일부 BRDF(주로 게임이나 영화 제작에 사용)는 가시성 항이 없습니다. 이는 가시성 항을 1로 설정하는 것과 같으며, 암시적으로 다음의 쉐도잉-마스킹 함수를 정의합니다:
이는 높이 맵(heightfield) 미세 표면에 대해 그럴듯한 쉐도잉-마스킹 함수입니다. Blinn-Phong 법선 분포 함수가 모든 후면 미세면에 대해 0이기 때문입니다. 은 이고 일 때 1입니다. 높이 맵에서 거시적 표면 법선 방향으로는 어떤 미세면도 가려지지 않으므로 이는 올바릅니다. 스치는 시야각이나 조명 각도에서는 0으로 갑니다. 이 역시 올바릅니다—시야각이 증가하면 미세면이 다른 미세면에 가려질 확률이 증가하며, 극한에서는 100%가 됩니다. 이 쉐도잉-마스킹 함수는 계산 비용이 전혀 들지 않습니다(단축 계수를 상쇄하므로 나눗셈이 필요 없음). 즉, "가성비(bang per buck)"가 매우 좋습니다.
를 다른 쉐도잉-마스킹 함수들과 비교하면, 이 함수가 0으로 너무 빨리 떨어진다는 것을 알 수 있습니다. 즉, 적당히 스치는 각도에서 너무 어둡습니다. 명시적인 쉐도잉-마스킹 함수를 추가하면 스페큘러 항이 밝아집니다(단축 계수도 함께 도입한다는 점을 잊기 전까지는 직관에 반하는 것처럼 보일 수 있습니다). 이 암시적 함수는 표면 거칠기에 영향을 받지 않는데, 이는 비현실적입니다. 거친 표면이 매끄러운 표면보다 쉐도잉 및 마스킹 확률이 높을 것으로 예상되기 때문입니다.
초기 쉐도잉-마스킹 함수 중 하나는 "Cook-Torrance"라고 불리며, 이 두 저자의 유명한 논문 [12, 13]에 등장했습니다:
그러나 이 함수는 몇 년 전 Blinn의 논문 [6]에서 Torrance와 Sparrow [59]가 소개한 쉐도잉-마스킹 함수의 재구성으로 처음 등장했습니다(각주 8). Cook-Torrance 쉐도잉-마스킹 함수는 수년 동안(특히 영화에서) 많이 사용되었지만 몇 가지 문제가 있습니다. 비현실적인 미세 기하학 모델(무한히 긴 V자 홈으로 구성된 등방성 표면)에 기반하며, 거칠기에 영향을 받지 않습니다.
Cook-Torrance는 게임에 사용하기에는 다소 비쌉니다. 그러나 Kelemen 등 [35]은 저렴하고 효과적인 근사식을 제안했습니다:
이는 암시적 쉐도잉-마스킹 함수만큼 저렴합니다. Cook-Torrance 쉐도잉-마스킹 함수와 단축 계수에 의한 나눗셈을 동시에 근사하며, 프레넬 항을 위해 어차피 계산하는 내적의 제곱으로 나누기만 하면 됩니다.
저는 Smith 쉐도잉-마스킹 함수 [55]를 사용할 것을 권장합니다. 이는 Cook-Torrance 함수보다 정확하다고 널리 인정받으며, 법선 분포의 거칠기와 모양을 고려합니다. 원래 Smith 함수는 Beckmann NDF를 위해 설계되었지만, Walter 등 [62]은 이를 일반화하여 어떤 NDF에도 적용할 수 있게 했습니다. Walter 등 [62]은 또한 효율적인 근사식들도 제공합니다.
Beckmann 및 Trowbridge-Reitz (GGX) NDF를 위한 Smith 함수들이 존재하며(각주 9), Bagher 등 [4]은 SGD NDF에 대응하는 Smith 함수 근사를 제공합니다.
일반화된 Smith 함수는 영화 제작에서 성공적으로 사용되어 왔습니다 [45]. 다양한 형태의 Smith 함수에 대한 근사식들은 여전히 Kelemen 함수보다 비쌉니다. Kelemen 함수가 (훨씬 더 복잡한) Cook-Torrance 쉐도잉-마스킹 함수를 성공적으로 근사한 것처럼, 게임을 위한 더 저렴한 근사식을 찾을 수 있을 것입니다.
(각주 8): 따라서 "Blinn 쉐도잉-마스킹 함수"나 "Torrance-Sparrow 쉐도잉-마스킹 함수"라고 부르는 것이 더 정확하지만, "Cook-Torrance"라는 용어가 너무 굳어져서 지금 바꾸기는 어렵습니다.
Further Reading
“Real-Time Rendering” 3판의 7장은 물리 기반 셰이딩 모델에 대한 폭넓은 개요를 제공하며, 이 강의 노트보다 좀 더 깊이 있게 다룬다.
더 심도 있게 공부하려면 Glassner의 Principles of Digital Image Synthesis [21, 22] 또는 Dorsey, Rushmeier, Sillion의 Digital Modeling of Material Appearance [18]을 참고하라.
이 책들은 지난 몇 년간의 최신 연구 결과는 포함하지 않는다는 점에 유의하라.
Dutré의 무료 온라인 자료 Global Illumination Compendium [19]은 BRDF, 방사선 측정(math), 그리고 그 외 다양한 내용을 다루는 유용한 참고 자료이다.
마지막으로, 이 강의의 다른 발표들 역시 물리 기반 셰이딩 모델의 프로덕션 사용에 대해 많은 유용한 정보를 담고 있다.






















.png&blockId=2cb0b1ff-a61e-8009-babb-dcafb7a9ee6a)









.png&blockId=2cb0b1ff-a61e-80d2-b501-d477d4f8a30e)



.gif&blockId=2bd0b1ff-a61e-8046-a234-e4a7c3b56ca1)
.png&blockId=2cb0b1ff-a61e-8007-844f-e2658937e91b)

.png&blockId=2cb0b1ff-a61e-801c-92e1-e7471d08af01)
.jpg&blockId=2bd0b1ff-a61e-8012-a27c-cae7183de53a)
.png&blockId=2cb0b1ff-a61e-80fd-88ae-e5d08bbbe7a6)
.png&blockId=2cc0b1ff-a61e-80b5-8183-df950e24b77b)

.png&blockId=2cc0b1ff-a61e-8029-8889-fa156deb3692)
.png&blockId=2cc0b1ff-a61e-806e-9638-f61cb3d1557c)

.png&blockId=2cc0b1ff-a61e-806b-8f21-cef908210b9c)
.png&blockId=2cc0b1ff-a61e-801c-b6c0-e36ea1ba37a4)
.png&blockId=2cc0b1ff-a61e-807e-9317-d778ab638acf)




