PBR (Physically Based Rendering)

 

Reflectance

 

 

위 이미지는 빛이 표면에 입사해서 반사되거나 산란되는 것을 표현하고 있다.

빛의 스펙트럼, 공간, 방향에 따라 물체의 표면에 반사되는 정도를 결정한다.

 

 

 

 

빛의 에너지와 강도에 따라서도 물체는 다르게 표현되는데

 

단위 면적당 입사하는 빛의 에너지를 나타내는 Irradiance (조도)

특정 방향에서 방출되거나 반사되는 빛의 에너지인 Radiance (휘도)로 빛을 측정할 수 있다.

 

 

 

여기에서 휘도는 카메라나 인간의 눈과 같은 센서가 빛에 반응하는 것으로도 볼 수 있다.

 

이미지를 바라보는 카메라가 특정 방향에서 방출된 휘도에 비례하여 반응하기 때문에

이미지의 픽셀 값 또한 카메라가 감지한 휘도에 비례하여 나타낸다.

 

 

 

 

 

 

 

BRDF (Bidirectional Reflectance Distribution Function)는 빛이 특정 방향으로 입사했을 때 다른 특정 방향으로 반사되는 에너지의 비율을 나타내는 함수를 말하는데

 

 

 

반사를 렌더링 할 때는 반드시

입사 방향과 반사 방향을 교환해도 BRDF 값이 동일해야 한다.

 

이는 에너지 보존과 물리적 대칭성을 기반으로 한 현실 세계의 속성이다.

이러한 Reciprocity(상호성)을 통해서 방향이 바뀌어도 빛의 양이 같기 때문에, 데이터 계산량을 반으로 줄일 수 있다.

 

 

 

 

 

현실 세계를 더 잘 표현하기 위한 속성으로 Isotropic(대칭) Anisotropic(비대칭)이 있다.

 

대부분의 재질은 표면 법선을 기준으로 회전해도 반사 속성이 변하지 않지만,

특정 방향에서 더 강한 반사를 가지는 재질(brushed metal 등)이 있다.

 

이 경우, 방향에 따라 반사 성질이 다를수도 있기 때문에 (데이터의 양을 줄일 수 있냐 없냐)

표면의 접선 방향과 같은 재질 속성을 추가로 고려해야 한다.

 

 

 

 

 

 

 

BRDF 모델의 분류

 

BRDF 모델은 크게 세 가지로 분류된다.

 

 

Plausible Simple Functions (단순 모델)

ex) Phong 모델 (1975)

반사를 단순화하여 빠르게 계산할 수 있지만, 물리적으로 정확하지 않다.

 

입력된 빛의 총량이 항상 출력과 일치하지 않을 수 있고, 입사와 반사 방향 교환 시 결과가 변할 수 있다.

(반사 중심이 항상 특정 방향에 고정됨)

 

 

 

 

Empirically-Based Models (경험 기반 모델)

ex)  Ward 모델 (1992)

실제 실험 데이터를 기반으로 BRDF를 근사한다.

직접 모든 입사, 반사 방향에 대한 조합을 측정하여 storage가 너무 커져서 비효율이지만

Isotropic(대칭)과 Reciprocity(상호성)을 통해 효율을 개선하고 있다.

 

 

 

 


Physics-Based Models (물리 기반 모델)

ex)  Cook-Torrance 모델 (1981)

미세 표면 구조와 같은 물리적 현상을 반영한다.

 

 

 

Cook-Torrance BRDF Model은 입사 광선이 무작위로 하나의 facet에 도달한다고 가정할 때

각 facet의 N벡터가 서로 같은지(물체의 표면이 매끈한지) 서로 다른지 (표면이 거친지)를 계산한다.

 

 

normal 분포 함수 (서로 균일하게 퍼져 있는지)이다.

 

 

Fresnel reflectance는 입사각이 작을 때 구리가 가장 높고, (반사 가장 잘됨)

물은 거의 반사되지 않는다.

 

(가까이선 속이 비치는데 멀리선 반사됨)

 

 

 

 

지금까지 복잡한 계산 외에

Lambert (Diffuse) Reflection은 BRDF의 간단한 확산 모델로 사용된다.

이때 상수 c는 반사된 빛의 비율 또는 diffuse color를 의미한다. (물체 고유의 색)

현실에서는 vertex마다 color값이 있지만 실제로 적용하기는 힘들기 때문에

texture map에서 저장된 것으로 텍스쳐의 색깔을 사용한다.

 

 

 

 

쉐이딩은 BRDF 값을 사용하여 조명 및 반사를 계산한다.

 

단순하게 diffuse 상수값에 irradiance를 곱한다고 생각해도 된다.

 

 

 

 

 

 

표면에 입사하는 빛의 방향별 분포와, 그 표면에서 반사되는 빛의 방향별 분포를 보여주는 예시이다.

 

위와 같이 반구의 모든 지점에서 빛이 들어올 수 있는데 이 빛을 irradiance라고 한다.

특정 빛이 입사하는 것과, 그 외에 간접적인 환경 빛이 입사되고 있다.

 

이제 물체에 들어온 빛을 계산한 후, 어떤 방향으로 퍼져나갈지를 계산해야 한다.

 

 

 

 

 

그런데 모든 방향의 입사광을 계산하기도, 또한 물체에 반사된 빛을 계산하기에는 너무 많다.

 

 

 

 

 

Monte Carlo Integration (몬테카를로 적분)

확률 밀도 함수(PDF)를 사용하여 균일한 확률 분포로 이미지를 샘플링한다.

 

여기에서 모든 환경광을 다 계산하기에는 오래 걸리니까

그 중 광원이 밝은 부분에(importance 부분) 더 많은 샘플(point)을 배치하여 효율적으로 환경광을 계산할 수 있다.