본문 바로가기

끄적거림/공부

PBR 강의 - 앤드류 맥시모프

PBR 강의 정리 - 앤드류 맥시모프


1. Specular는 더 이상 필요없다.

- 애초에 스펙큘러라는 것은 근사값 같은 것으로, 현실적으로 만들 수 없는 부분에 대한 보충을 하는 값이었다.


※빛의 기본적인 이론

- 기본적으로 빛에 의한 현상은 diffuse, reflaections, reflaction, tranlucency로 구성되어 있다.

- translucency는 정확히 말하면 역방향으로부터 오는 Refraction 같은 것이다.

- DIffuse는 정적인 반사이며, Reflection은 카메라 각도에 의해 변한다.

- 최근 PBR 기반 렌더링에서는 열역학 1법칙, 즉 에너지 보존의 법칙을 따라야 한다.

  즉, Diffuse+Reflection+Refraction은 들어오는 빛보다 작거나 같다는 것이다.

  이 말은 다른 의미로 Diffuse, Reflection, Reflaction은 서로 반비례라는 것이다.




2. 감마

- 기존의 엔진들은 렌더된 이미지가 화면에 뿌려지기 전에 감마보정을 해서 대비가 강해져 좀 더 이쁜 화면을 만든다.

- 즉, 화면에 보여지는 이미지의 밝기가 실제 빛의 양을 나타낸다고 할 수 없다.

- PBR에서는 픽셀의 밝기(픽셀이 포함한 빛의 양)와 실제 빛의 양이 같아야 한다.


3. 금속과 유전체의 구별

※ 유전체 : 전기를 흘렸을 때 전하가 유기되는 물체 / 전기를 담아둘 수 있는 물체

            여기서는 유리와 물을 예로 들었다.



- 위의 그래프는 입사각과 반사되는 빛의 양을 나타내고 있다.

- 입사각이 90도에 가까울 수록 반사되는 빛의 양이 늘어나고 있는 것을 알 수 있다.

- 여기서 보면 유전체는 입사각이 낮을 때 그래프가 주로 아래쪽에 위치하지만, 금속류는 입사각에 관계없이 거의 항상 위쪽에 위치해있다는 것을 알 수 있다.

- 따라서 금속은 카메라의 각도에 상관없이 항상 주변을 반사하지만, 유전체는 입사각이 낮을 때는 주변을 반사하지 않지만, 입사각이 커져서 점점 비스듬히 보게되면 

  주변을 반사하게 된다.

- 하지만 기본적으로 금속이 유전체보다 더 반사적인 성향을 띈다.

- 즉 결론은 카메라의 각도에 따라서 반사의 양이 변화한다는 것이다.


- Specular의 정의는 표면의 반사성이지만 여기에는 주의가 필요한데, 일반적으로 모든 물질의 specular는 변하지 않고 고정되어 있다.

- 금속(metal) 또는 금속성(metalic)은 본래 2개의 가능성 밖에 없다.(금속인지 아닌지)

- 여기서 열역학 1법칙이 대단히 중요한데, 처음에 이야기한 것처럼 빛의 양은 일정하기 때문에 반사성이 높으면 diffuse의 영향이 점점 없어지며, 

   그래프에서 볼 수 있는 것처럼 반사성이 거의 1에 가까운 금속 물질의 경우는 diffuse가 아에 필요 없어진다고 할 수 있다.

   그래서 보다 물리 법칙에 가까운 그래픽을 구현한다면 금속에는 아에 diffuse가 필요없다

.


- 금속의 스펙큘러는 주변의 파장을 흡수, 반사하기 때문에 색이 들어간 specular를 만들지만, 유전체는 보통의 빛, 현실적인 색조의 빛, 현실적 밝기의 빛 등을 반사한다.

- 따라서 유전체는 diffuse에 조금 의존하고 specular에 수치로 사용할 1개 채널만 있으면 되지만, 금속은 보통 Diffuse나 Albedo가 필요없는 대신 RGB의 색이 들어간 

   specular가 필요하다.

- 이 색과 수치는 측정할 수 있는데, 아래의 표가 바로 그 예시이다.



- specular가 없어 보이는 사물에도 사실은 specular가 상당히 기여하고 있다.

  (specular라는 것이 반드시 '밝은 것'만이 아니라 어두운 스펙큘러를 만들어서 사물을 어둡게 하기도 하는 듯 하다.)


- 금속에서는 diffuse 맵을 그 색의 specular로써 사용할 수 있으며, 대부분의 유전체는 specular 강도를 일반적인 수치로 속일 수 있을 것이다.

  대신에 roughness나 gloosiness로 표면을 제어해야 할 필요가 있다.

- AO가 있어서 어두워야 하는 부분에 specular 맵을 이용하여 어둡게 만들어줄 수도 있을 것이다. 그러나 specular를 정교하게 계산하고 싶다면 불가능하다.


4. Glossiness와 Roughness

- 해석마다 차이가 있지만, 보통 반짝반짝 빛나는 것이나 반사적인 것 또는 선명한 하이라이트나 Reflection이 있는 것이다.

- 보통 Glossiness보다 Roughness를 사용하여 표면이 얼마나 거친가를 이야기한다.

- 표면이 거칠면 거칠 수록 반사되는 빛이 퍼지게 되므로 Reflection이 희미하게 보이게 된다.

- 열역학 1법칙에 의해서 하이라이트가 퍼지면 퍼질수록 빛이 난반사 된다는 이야기이기 때문에 사물을 어둡게 만들 필요가 있다.

- 거칠기에 따른 반사, 하이라이트는 수치화하는 것이 불가능하기 때문에 실제 것을 보고 직감으로 최대한 비슷하게 맞추는 수 밖에 없다.



5. 층을 이르고 있는 재질

- 일반적으로 가장 위에 있는 층의 재질이 일정 두께가 있으면 그 재질의 특징을 따른다.


6. 빛의 Albedo

- diffuse와 albedo는 엄연히 다르다. 

- diffuse라는 것은 원래 표면의 라이팅, 색, AO, specular까지 게임에 관련된 모든 요소를 담기 위한 텍스쳐였다.

- Albedo는 반면에 기본적으로 그저 표면의 색에 지나지 않는다. 그래서 AO를 0으로 하는 경우도 있으며, 어떤 회사는 조금 남기는 경우도 있다. 엔진에 따라 차이가 있지만, 

   일반적으로 Albedo 텍스쳐 내의 AO를 납득할만한 수준으로 표현주는 것은 어렵다.

- Albedo는 또한 스펙큘러를 완전히 제거해줄 필요가 있다. 특정 장소에서 사용되는 물체라면 그 자체가 이쁘게 나오는 것도 좋지만, PBR로 여러 곳에 사용할 것이라면 

   이 법칙을 지켜주는 것이 좋다. specular가 제거된 색은 편광렌즈를 사용하면 볼 수 있다.


7. 정리

- specular는 이제 안녕~ 그리고 어서와 reflection!

- 에너지 보존의 법칙에 따라서 diffuse + Reflection + Refraction의 총합은 라이팅 환경에서 발생하는 빛의 양을 넘어서는 안 된다.

- gamma는 직선형 구조로써, 감마 보정을 사용해선 안 된다. 그렇지 않으면 2번에 위배된다.

- 유전체는 대면각에서는 반사가 적지만 그레이딩 각에서는 반사가 매우 크다.

- 금속은 반대로 항상 반사가 강해서 diffuse 텍스쳐가 그다지 필요없다.

- 금속은 반사가 높아 specular의 기여도가 높으며, diffuse에는 그다지 의존하지 않는다.

- 유전체는 diffuse에 의존하지만, 하얀 빛을 전부 그대로 반사하므로 반사성 면에서는 수치 값에 의존한다.

- 금속은 몇 개의 파장을 흡수하므로 Reflection에 색이 있다.

- 어떤 사물이든 아무리 specular 같지 않아보여도 specular를 가지고 있다. 그저 표면의 거칠기의 차이일 뿐이다.

- 요새는 표면을 Roughness로 나타내며, 표면이 거칠면 거칠수록 Reflection은 약해지지만, 에너지 보존의 법칙에 따라 Reflection이 어둡게 되는 효과도 있다.

- 금속에 유전체적인 것을 묻히면 유전체처럼 보이고 유전체에 금속적인 것을 묻히면 금속 형태가 된다.

- Albedo를 만들 때는 AO를 넣지 않거나 아주 조금만 넣고, specular를 완전히 제거한다.


8. PBR의 장점

- 올바르게 사용하면 더 멋진 외관을 만들 수 있다.

- 대부분의 경우 물리적으로 올바르다 가정하여 더 자연스럽게 보인다.

-  다양한 환경에서 더 오래, 재사용할 수 있다.

- 대부분 물리적으로 맞으므로 계측할 수 있어 더 만들기 쉬워진다.