10년도 안 된 최신 트렌드 기술
3D 이미지와 비디오를 현실적으로 만드는데 도움이 된 기술이다.
Phong lighting-based rendering
PBR-based rendering
PBR resolves around two fundamental concepts: Bidirectional Reflectance Distribution Function (BRDF). and energy conservation(에너지 보존의 법칙).
수학적 함수이다.
평면이 어떻게 빛을 반사시킬 것 인가에 대한 이야기이다. 라이트와 머테리얼의 상호작용을 묘사한다.
평지처럼 보이는 평면의 nomal이 현미경으로 들여다보면 울퉁불퉁한 평면이기 때문에 이런것 다 고려해야 사실적인 렌더링을 할 수 있을 것 이다.
현실에서는 태양으로부터 100의 빛을 받아 반사를 해서 120이 된다? 이런거 존재 불가 즉 이런거 고려하겠다.
빛이 반사가 되거나 굴절이되었을 때 총량이 일정하도록 해서 실제와 같은 렌더링을 제공하고자 한다.
This is a mathematical function that describes how light is reflected at an opaque surface.
→ opaque surface: 금속도 아니고 투명하지 않은 것들을 이야기함
Uniform diffuse contribution
Specular contribution
Directional diffuse contribution
Lambertian diffuse model (default diffuse BRDF used in UE4)
Lambert’s cosine law
어디서 바라보고 있는지에 따라 나한테 도착하는 광자량을 정하는 것이다. 나한테 도달하는 광자량에 대한 정보를 단순히 코사인이 아니라 피자같이 생긴 친구의 넓이로써 정의를 한다.
물리적으로 보기 좋지 않은데 대부분의 현실에 있는 물체들에 대해 잘 동작을 하기 때문에 아래와 같이 쓴다.
난반사를 일으킨 것이니 각도에 따라 세타를 정의하고 세타를 이용해 코사인을 따라가도록했는데 퐁 셰이더와 다른 것은 Lambert’s cosine law를 이용해 부채꼴의 넓이를 이용해 같다? 까지 고려를 할 수 있었다.
D는 H를 이용해 micofacet nomal이 어떤 확률로 분포 되어 있는가를 결정한다.
💡 목적
하프 벡터를 기준으로 빛이 어떻게 들어왔는가를 고려해서 얼마나 밝게 튕겨나갔는지를 알아낸다.
📌
G
지오메트릭하게 위로 튀어나와 있는 것
V-Cavity model & Smith model
Smith’s model
→ slope model을 랜덤하게 때려버리는 것
→ 오리엔테이션을 랜덤하게 바꾸어서 계산을 해버린다.
나를 막을 애들 아닌 애들을 확률적으로
확률적으로 모델링된 facet들의 오리엔테이션을 고려하고 전반적인 roughnesss를 구한다.
아래 식과 같다.
📌
F
빛이 어떤 물체에 닿았을 때 반사가 얼만큼 될 것이냐 얼마나 뚫고 들어가 것인지 결정한다.
에너지 보존도 잘 지키고 물리적으로도 그럴듯 해 보인다.
This principle is derived from the first law of thermodynamics
렌더링 하고 이런 테스트를 해서 만족하면 에너지 보존이라고 할 수 있다
White furnace test:
Hemisphere balance test
Non-negative radiance test
translucent objects, fabrics, or anisotropic materials은 잘 안다.
다양한 머테리얼을 다루는 것이 이제 과제이다. 섬유 같은거 어렵다. brushed hair, metal 어렵다.
안개가 깔려 있으면 잘 안된다. fog, smoke, cloud 등등
이런 fog를 다루기 위해선 volumatric rendering이 피요한데 이게 나오는 순간 실시간은 안된다.
연속된 surface들끼리 각도 차이가 너무 많이나서 자글자글한 현상이 일어난다.
💡 BPR
BRDF와 에너지 보존 법칙이 잘 엮여서 된 것이었다.
BRDF
는 입사각 반사각 nomal이 가장 중요한 컴포넌트 였다.
- 이를 기반으로 Uniform diffuse contribution, Specular contribution, Directional diffuse contribution 세개가 연관이 되어 BEDF를 정의했다.
- microfacet-model, difuuse 000을 어떻게 일어나는지 계산을 하려면 평면에 빛이 입사했을 때 어떻게 반사할 것 인지 결정을 해야하고 이 반사하는 것을 대충 하면 퐁과 다를 바가없으니 엄청나게 작은 입자를 이요하여 수학적으로 풀면 되었다. 우리는 GGX를 이용했다.
GGX
⇒ BRDF는 적당히 잘 되는 애들을 모아서 한번에 버무려 다음과 같이 표현했다.
에너지 보존의 법칙
빛에 조작을 가하거나 추가적인 오퍼레이션을 한다면 들어오는 빛 대비 나가는 빛의 양이 같아야 한다. 이를 위한 테스트를 했다.
PBR이 잘 안되는 것
hair, fog, noise 등등
해당 포스트는 강형엽 교수님의 게임그래픽프로그래밍 [GGP-23-1] 수업을 수강하고 정리한 내용입니다. 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다😊