Phong에서 PBR까지 (3) - BRDF란 무엇인가?

Diffuse와 Specular를 단순한 조명 항이 아니라, 입사광을 반사하는 표면의 함수인 BRDF 관점에서 다시 살펴봅니다.

Series Phong에서 PBR까지 3 / 6

Phong에서는 보통 조명을 다음과 같이 생각한다.

Ambient
+ Diffuse
+ Specular

그리고 각각 원하는 공식을 적용한다.

그런데 현대적인 렌더링 자료에서는 갑자기 BRDF라는 용어가 등장한다.

BRDF는

Bidirectional Reflectance Distribution Function

의 약자다.

직역하면 양방향 반사 분포 함수다.

이름만 보면 상당히 거창하지만 질문 자체는 단순하다.

어떤 방향에서 빛이 들어왔을 때, 표면이 그 빛을 특정 방향으로 얼마나 반사하는가?


빛에는 두 방향이 존재한다

표면의 한 점을 생각해보자.

       카메라
          ↑
          V
         /
        ●
       /
      L
   광원

두 방향이 존재한다.

  • $L$: 빛이 들어오는 방향
  • $V$: 빛을 관찰하는 방향
입사광 L이 표면에 닿아 specular 성분 fr과 diffuse 성분 fd로 반사되는 방향 도식

같은 입사광도 재질의 BRDF에 따라 정반사 성분과 여러 방향으로 퍼지는 확산 성분으로 나뉜다.

따라서 표면의 반사 특성은

$$ f(L,V) $$

처럼 두 방향에 의해 결정된다.

이것이 Bidirectional이라는 이름이 붙는 이유다.

보통 렌더링에서는

$$ \omega_i $$

를 입사 방향,

$$ \omega_o $$

를 출사 방향이라고 표기한다.

그래서 BRDF는 일반적으로

$$ f_r(\omega_i,\omega_o) $$

라고 적는다.


BRDF는 빛 그 자체가 아니다

여기서 중요한 점이 있다.

BRDF는 최종 밝기가 아니다.

표면이 들어온 빛을 특정 방향으로 얼마나 반사하는지를 나타내는 비율이다.

개념적으로는 한 방향에서 빛이 들어왔을 때

$$ L_o \propto f_r(\omega_i,\omega_o) L_i (N\cdot L) $$

와 같이 사용된다.

즉,

들어온 빛
    ↓
표면의 BRDF
    ↓
방향에 따른 반사
    ↓
카메라로 나가는 빛

의 구조다.


사실 Lambert Diffuse도 BRDF다

우리가 너무 익숙하게 사용하던 Lambert Diffuse도 BRDF로 표현할 수 있다.

$$ f_d = \frac{\rho}{\pi} $$

여기서 $\rho$는 표면의 diffuse color, 즉 albedo다.

왜 갑자기 $\pi$가 들어가는지는 에너지 보존과 관련이 있다.

Lambert 표면은 들어온 빛을 반구 전체로 균일하게 분산시킨다고 가정한다.

따라서 반구 전체에 분배했을 때 총 반사 에너지가 입력 에너지를 넘지 않도록 정규화할 필요가 있다.

그 결과가

$$ \frac{1}{\pi} $$

다.

이것만 보더라도 단순히

diffuse = color * NdotL;

이라고 구현하던 것보다 좀 더 물리적인 의미가 생긴다.


BRDF의 중요한 조건: 에너지 보존

현실의 일반적인 표면은 받은 빛보다 많은 빛을 반사할 수 없다.

즉,

들어온 에너지 >= 반사된 에너지

여야 한다.

이를 Energy Conservation이라고 한다.

Phong에서는 Diffuse와 Specular를 독립적으로 크게 설정할 수도 있다.

diffuse  = 1.0;
specular = 1.0;

이 경우 물리적으로 해석하기 어려운 결과가 나올 수 있다.

PBR에서는 반대로

Specular로 반사된 만큼 Diffuse로 들어갈 에너지가 줄어야 한다.

와 같은 관계를 고려한다.

현대 PBR에서 Diffuse와 Specular가 단순히 서로 독립적인 두 색상이 아닌 이유다.


BRDF는 하나의 공식 이름이 아니다

이 부분은 처음에 특히 헷갈리기 쉽다.

BRDF 자체가 특정한 렌더링 공식의 이름은 아니다.

BRDF는 하나의 개념 또는 함수의 형태다.

다양한 BRDF를 만들 수 있다.

예를 들면,

Lambert
Blinn-Phong
Cook-Torrance
Disney BRDF
...

와 같은 서로 다른 반사 모델들이 존재할 수 있다.

우리가 앞으로 볼 Microfacet BRDF 역시 그중 하나다.


지금까지의 관점 변화

Phong에서는 이렇게 생각했다.

반짝임을 어떻게 그럴듯하게 만들까?

그래서

$$ (R\cdot V)^s $$

라는 함수를 사용했다.

BRDF 관점에서는 질문을 조금 다르게 한다.

실제로 이 표면은 특정 방향의 빛을 특정 방향으로 얼마나 반사해야 하는가?

즉,

결과의 모양을 직접 설계
        ↓
표면의 반사 특성을 모델링

으로 관점이 바뀐다.

이제 그 표면을 어떻게 모델링할 것인가가 남는다.

현대 실시간 렌더링에서 널리 사용하는 방법 중 하나가

표면을 수많은 작은 거울의 집합으로 보는 것이다.

다음 글에서는 Microfacet Model을 살펴본다.

참고자료