Physically Based Rendering

SYiee·2023년 8월 21일
0

Graphics

목록 보기
4/5
post-thumbnail

10년도 안 된 최신 트렌드 기술

Introduction

3D 이미지와 비디오를 현실적으로 만드는데 도움이 된 기술이다.

PBR?

  • 렌더링 기술이다.
  • 빛의 물리적 특성과 머테리얼의 물리적 특성을 시뮬레이션한다.
  • physical property 란 뭘까요?

Phong lighting-based vs. PBR-based rendering?

Phong lighting-based rendering

  • 고전적인 것.
  • ad-hoc 주먹구구식의 model이다.
  • 반사되는 빛의 양이 코사인 함수를 이용해 적당히 잘 사용했다.

PBR-based rendering

  • Material: reflectance, transparency, and how light interacts with materials.
  • Light behavior: the effect of light penetrating a material, and scattering within or upon a material.

Overview

Principles of PBR

PBR resolves around two fundamental concepts: Bidirectional Reflectance Distribution Function (BRDF). and energy conservation(에너지 보존의 법칙).

Bidirectional Reflectance Distribution Function (BRDF)

수학적 함수이다.
평면이 어떻게 빛을 반사시킬 것 인가에 대한 이야기이다. 라이트와 머테리얼의 상호작용을 묘사한다.

평지처럼 보이는 평면의 nomal이 현미경으로 들여다보면 울퉁불퉁한 평면이기 때문에 이런것 다 고려해야 사실적인 렌더링을 할 수 있을 것 이다.

Energy Conservation

현실에서는 태양으로부터 100의 빛을 받아 반사를 해서 120이 된다? 이런거 존재 불가 즉 이런거 고려하겠다.

빛이 반사가 되거나 굴절이되었을 때 총량이 일정하도록 해서 실제와 같은 렌더링을 제공하고자 한다.

BRDF?

This is a mathematical function that describes how light is reflected at an opaque surface.

→ opaque surface: 금속도 아니고 투명하지 않은 것들을 이야기함

Uniform diffuse contribution

  • 어떤 방형으로부터 포톤이 드렁오면 표면과 상호작용르 한다. 그러고 방향을 무작위로 바꾸게 된다.

Specular contribution

  • 방향성을 가지고 나가는 것
  • 거울에 반사한 것 같은 느낌이다
  • Fresnel reflectivity을 이용해 반사를 정의한다.
    → 빛이 들어왔고 깔끔하게 나간다고 생각하면 된다.

Directional diffuse contribution

  • 방향을 가진 diffuse
  • 퐁에서는 고려되지 않은 것임.
  • correlated way

BRDF - Diffuse Reflection

Lambertian diffuse model (default diffuse BRDF used in UE4)

Lambert’s cosine law

어디서 바라보고 있는지에 따라 나한테 도착하는 광자량을 정하는 것이다. 나한테 도달하는 광자량에 대한 정보를 단순히 코사인이 아니라 피자같이 생긴 친구의 넓이로써 정의를 한다.

물리적으로 보기 좋지 않은데 대부분의 현실에 있는 물체들에 대해 잘 동작을 하기 때문에 아래와 같이 쓴다.

난반사를 일으킨 것이니 각도에 따라 세타를 정의하고 세타를 이용해 코사인을 따라가도록했는데 퐁 셰이더와 다른 것은 Lambert’s cosine law를 이용해 부채꼴의 넓이를 이용해 같다? 까지 고려를 할 수 있었다.

BRDF - Specular Reflection

  • Normal Distribution Term (D)
    → 노말이 어떻게 분포되어 있는지 aproximation할 때 사용
  • Geometric Attenuation Term (G)
    → 지오메트릭하게 빛을 막아 나란테 오는 영향을 줄여주는 것
  • Fresnel Term (F)

D는 H를 이용해 micofacet nomal이 어떤 확률로 분포 되어 있는가를 결정한다.

  • shiness : 얼마나 밝혀줄간가.

💡 목적
하프 벡터를 기준으로 빛이 어떻게 들어왔는가를 고려해서 얼마나 밝게 튕겨나갔는지를 알아낸다.

📌 G
지오메트릭하게 위로 튀어나와 있는 것

  • V-Cavity model & Smith model

  • Smith’s model
    → slope model을 랜덤하게 때려버리는 것

    → 오리엔테이션을 랜덤하게 바꾸어서 계산을 해버린다.

    나를 막을 애들 아닌 애들을 확률적으로

  • The model takes into account two effects
    • Shadowing effect: this occurs when one facet blocks light
      어떤 facet이 light를 막으면 shadow가 생겨 어두워짐
    • Masking effect: this occurs when one facet obscure the microfacets from the viewer’s perspective
      반사가 일어나고 다시 돌아가는 빛을 막는 것

확률적으로 모델링된 facet들의 오리엔테이션을 고려하고 전반적인 roughnesss를 구한다.

아래 식과 같다.

📌 F

빛이 어떤 물체에 닿았을 때 반사가 얼만큼 될 것이냐 얼마나 뚫고 들어가 것인지 결정한다.

  • 얼마나 많은 라이트가 표면으로부터 반사될 것인지 정함. 얼마나 많은 양이 BRDF를 최종적으로 결정하는데 영향을 줄것이냐. 를 결정
  • Fresnel equations을 기반으로 한다.

BRDF – Combining diffuse & specular

에너지 보존도 잘 지키고 물리적으로도 그럴듯 해 보인다.


Energy Conservation

Energy Conservation Principles

This principle is derived from the first law of thermodynamics

  • BRDF는 phisically-based로 하여고 에너시 손실이 있을 수 있다.

렌더링 하고 이런 테스트를 해서 만족하면 에너지 보존이라고 할 수 있다

White furnace test:

Hemisphere balance test

Non-negative radiance test


PBR Challenges

1. Handling complex materials

translucent objects, fabrics, or anisotropic materials은 잘 안다.

다양한 머테리얼을 다루는 것이 이제 과제이다. 섬유 같은거 어렵다. brushed hair, metal 어렵다.

2. Handling homogeneous participating media

안개가 깔려 있으면 잘 안된다. fog, smoke, cloud 등등

이런 fog를 다루기 위해선 volumatric rendering이 피요한데 이게 나오는 순간 실시간은 안된다.

3. Handling homogeneous participating media

연속된 surface들끼리 각도 차이가 너무 많이나서 자글자글한 현상이 일어난다.

💡 BPR
BRDF와 에너지 보존 법칙이 잘 엮여서 된 것이었다.

BRDF는 입사각 반사각 nomal이 가장 중요한 컴포넌트 였다.

  • 이를 기반으로 Uniform diffuse contribution, Specular contribution, Directional diffuse contribution 세개가 연관이 되어 BEDF를 정의했다.
  • microfacet-model, difuuse 000을 어떻게 일어나는지 계산을 하려면 평면에 빛이 입사했을 때 어떻게 반사할 것 인지 결정을 해야하고 이 반사하는 것을 대충 하면 퐁과 다를 바가없으니 엄청나게 작은 입자를 이요하여 수학적으로 풀면 되었다. 우리는 GGX를 이용했다.
  • GGX
    • Normal Distribution Term (D)
      노말이 평균적으로 어떻게 되어 있는지 추정하는 방법
    • Geometric Attenuation Term (G)
      micro facet이 random orientation을 가지고 다른 micro facet에게 하는 빛을 막거나 반사되어 나가는 빛을 막는 것이 가능하기 때문에 이것을 수학적으로 적당히 잘 모델링 했다
    • Fresnel Term (F)
      입사각에 따라 어느정도 굴절시키고 흡수시키고 반사시킬지 정한다. 이것이 계산이 어려우니 Schlick’s approximation을 이용해 적당히 잘 되에 하였다.

⇒ BRDF는 적당히 잘 되는 애들을 모아서 한번에 버무려 다음과 같이 표현했다.

에너지 보존의 법칙

빛에 조작을 가하거나 추가적인 오퍼레이션을 한다면 들어오는 빛 대비 나가는 빛의 양이 같아야 한다. 이를 위한 테스트를 했다.

PBR이 잘 안되는 것

hair, fog, noise 등등



🖇 Reference

해당 포스트는 강형엽 교수님의 게임그래픽프로그래밍 [GGP-23-1] 수업을 수강하고 정리한 내용입니다. 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다😊

profile
게임 개발자

0개의 댓글