본문 바로가기

ComputerScience/Computer Graphics

CG - 15. Advanced Rendering : Refectance

728x90

1. Refectance

- 이제까지 배운 모든 illumination방법 보다 더 사실적인 묘사를 위한 방법들을 알아보자.

- 빛이 물체에서 반사되는 성질을 모델링하는 방법이다.

- surface reflectance에 따라서 서로 다른 질감을 표현할 수 있다.

- diffuse: 빛이 들어왔을 때 빛이 퍼지는 특징을 말한다

Spectral Distribution

- 물체의 surface의 색에 따라 반사되는 빛을 고려하는 방법이다. 

- RGB각각의 채널에 따른 반사를 모델링한다. 

- 표면에 색에 따라서 반사고 흡수되는 빛이 파장에 따라 다르기 때문이다.

Spatial Distribution

- 물체의 특성(material property)이 suface의 위치에 따라 달라지는 것을 모델링한다.

- 같은 표면이라도 서로 다른 지점에서 반사되는 정도가 다를 수 있다.

Directional distribution

- 빛이 들어오는 각도, 빛을 보는 각도에 따라 빛 에너지가 어떻게 분포가 되는지 등을 모델링한다.

2. Radiometry

- Radiometry는 light energy를 측정하는 것을 말한다.

- 크게 두가지를 측정할 수 있다.

Irradiance : unit surface에 들어올 수 있는 모든 방향의 빛의 에너지를 모델링 한다.

- Irradiance가 light source가 된다.

 

radiance : 특정 지점에서 특정 각도로 나가는 빛의 power을 모델링한다.

- 빛의 power란 unit surface area에서 unit solid angle로 얼마만큼 빛의 에너지가 나가는가를 말한다.

.

- Radiance가 픽셀의 color가 된다.

- 눈이 특정 지점의 색을 본다는 것은 그 지점으로 사방에서 들어온 빛이 눈 각도로 반사되어 나가는 것을 말한다.

- 따라서 rendering을 한다는 것은 주어진 Irradiance에 대해서 각 픽셀마다의 radiance를 계산하는 것이다.

 

- 이 그림은 특정 지점에서 주어진 irradiance에 따라 Irradiance가 어떻게 되는지를 보여준다. 

- 이상적으로는 ideal diffuse, idea specular 형태이지만 실제 물체는 균일하기가 매우 어렵다.

- directional diffuse처럼 불규칙하게 diffuse가 이루어지고 specular에 의해 정반사되는 빛의 세기가 조금더 클 수 있다.

- directional diffuse를 모델링하면 사실적인 묘사에 더 가까워질 수 있다.

- 겉으로 보기에는 매끄러워 보이지만 크게 확대해 보면 불규칙한 micro geometry를 갖는다.

- microfacet 기법은 아래와 같다. (모델링 기법)

- ideal diffuse의 경우는 빛이 어느 지점에 들어오면 모든 방향으로 반사될 확률을 동일하게 한다.

- ideal specular는 특정 방향으로 반사될 확률이 높은 micro geometry를 갖도록 한다.

- directional diffuse는 특정 방향으로 반사될 확률을 높지만 다른 방향으로도 반사될 확률이 유의미하게 많이 존재한다고 한다.

3. BRDF (Bidirectional Reflectance Distribution Function)

- wi로 들어온 빛이 wr방향으로 얼마만큼 반사가 될것인지 나타낸 함수이다.

- 네개의 각으로 이루어진 4차원 함수로 정의 된다.

- brdf의 특징중 하나는 reciprocity(상호성)가 있다는 것이다. wi와 wr을 바꿔도 동일한 결과가 나온다.

4. isotropic vs anisotropic

- isotropic은 Normal vector를 중심으로 회전해도 동일하게 반사되는 특징을 갖는다.

- 따라서 4차원으로 구성된 함수를 3차원으로 줄일 수 있다.

- anisotropic은 특정방향으로 사포질한 듯한 질감을 나타낸다.  

- 왼쪽 isotropic은 specular highlight가 원형이지만 anisotropic은 대칭적이다.

5. plausible simple functions

- BRDF를 나타내는 방법 중 가장 간단한 방법이다. 

- phong illumination model이 이에 해당한다.

- diffuse, specular, lambient를 합한 모델이다.

- irradiance도 point light처럼 한 방향으로 들어온다고 단순화하고 diffuse도 ideal한 형태를 띤다고 생각한다.

- 이렇게 단순화 함으로써 계산속도가 빨라지지만 그만큼 사실성이 떨어질 수 있다.

6. Physics-based model

- 예로 cook/torrance모델이 있다. BRDF를 좀더 사실적인 렌더링을 위한 수식으로 고안하였다.

- cook/torrance모델은 물체의 surface가 굉장히 작은 micro geometry로 구성되어 있다고 생각한다(microfacet model)

- 이 microfacet model에 빛이 들어오면 어떤 방향으로 반사가 될 것인지 확률적으로 계산한다.

- 실제 물리법칙에 기반하여 수식을 모델링하였다. 물론 약간의 approximation이 되어있다.

- ideal하다고 가정하여 diffuse는 동일한 확률로 퍼져나가고 specular는 정반사의 경우 확률이 높은 형태를 띤다고 생각한다.

- cook/torrance모델은 specular term에 좀더 집중한다. diffuse의 경우는 phong illumination과 유사하다.

- diffuse는 상수로 정의 된다.

- ideal한 phong모델과 달리 physics-based model은 각도에 따라 에너지의 분포가 달라진다.

- specular 함수는 어떤 position x에서 L : light source wi 와 V : viewing wr로 표현된다. 

- F는 입사각과 같은 각으로 반사 되는 비율을 나타낸다(정반사).  입사각과 surface에 normal에 좌우된다.

- 아래 그림은 물질에 따라 입사각(normal과 wi의 각도)에 따른 반사 정도(radiance)를 나타낸다.

- 금속은 정반사율이 큰 반면 물같이 투명한 물질은 각도가 커질수록 물에 흡수되고 각도가 작아질수록 반사율이 커진다. 이런 특징이 아래 사진에 잘 나타나 있다.

- G는 microfacet에 빛이 들어와 반사가 되어도 눈에 도달하지 않는 빛이 있을 것이다. 빛이 눈에 보이지 않을 확률을 나타낸다.

- microfacet에서는 각 지점마다 normal이 다르다. 따라서 빛이 들어왔을때 정반사할 확률이 어느정도인가?를 나타내는 것이 D이다.

 

- 왼쪽은 특정 지점으로 들어오는 다양한 각도의 빛들 incident를 나타내고 오른쪽은 그 빛들이 들어와서 퍼지는 형태를 나타낸다.

- 오른쪽 형태로 변환되면(BRDF로 변환) 눈에 위치에 따라 눈에 들어오는 빛의 세기를 알 수 있게 된다.

- 변환된 radiance 함수는 아래 식으로 구한다.

- w0는 눈으로 들어오는 방향이다.

- wi는 light source의 방향이다. 따라서 Li는 x로 wi방향으로 들어오는 빛의 세기이다.

- 로우는 BRDF함수이다.

- V는 shadow처리를 위한 visibility이다.

- 이렇게 모든 방향에서 x로 들어와서 w0로 나가는 빛들을 다 구해서 더한다.

7. Empirically-based model

- 예로 ward가 있다.

- 실제 물체의 brdf를 측정하여 저장한 다음 사용하는 방법이다.

- 측정을 위한 장비가 필요하다. 위도 경도를 이동해가며 point light를 쏘는 장치(wi)로 빛을 쏜다. wr을 기록하기 위해서 눈의 위치에 해당하는 장치가 있다. 반사되어 들어오는 빛의 양을 측정한다.

- 이 bfdf는 4차원 함수이기 때문에 storage가 많이 필요하다.

- isotrophic하다고 가정하면 4차원 함수를 3차원으로 줄일 수 있다.

8. Irradiance Environment Map

- 크롬 볼같은걸로 실제 주변 환경의 irradiance를 저장하고(캡쳐)

- 물체 주변을 둘러싼 environment map을 활용하여 렌더링 할때 활용한다. 

- 우측 사진의 지점에서 반사되는 빛을 계산한다고 하면 environment map의 반구 부분을 가지고 구한다.

- 그래서 실제로 계산할 때 environment map을 가지고 몇개의 sampling을 통해 irradiance를 계산한다.

- 최종 integration을 하여 구한다. 하지만 모든 지점을 고려하면 오래걸리니 uniform random으로 sampling한다.

- 이 방법을 Monte Carlo integration이라고 한다.

- 전부다 더하는게 아니라 이 식을 random sampling 수만큼만 더하게 된다.

- 이보다 더 좋은 방법으로 importance sampling이 있다. uniform하게 sampling하는게 아니라 더 중요한 빛 이라면 더 많이 샘플링 하는 것이다.

- 예를 들면 태양빛이 주 광원이라면 태양에서 오는 빛을 더 많이 샘플링 하는 것이다. 왜냐하면 한 지점을 기준으로 반사되어 눈으로 들어올 빛은 확률적으로 태양에서 오는 것이기 높기 때문이다. 이를 PDF(probability density function)에 기반한 샘플링 이라고 한다.

 

- Monte Carlo integration 말고도 Frequency domain function 방법도 있다.

- 이렇게 실제 풍경의 environment map을 가지고 가상의 물체를 합성하여 radiance를 계산하는 방법을 image based lighting이라고 한다.

728x90
반응형