WinCNT

PBR(Physically Based Rendering) - Global Illumination 1 본문

게임 프로그래밍(학습 내용 정리)/3D Graphic Engine

PBR(Physically Based Rendering) - Global Illumination 1

WinCNT_SSS 2022. 7. 25. 19:35

Global Illumination(GI, 전역 조명)

현실에서는 거의 모든 것이 (간접)광원이 된다

이것에 대한 고려 없이는 사실적인 그래픽스라고 할 수 없다

(다른 말로는 물리적인 근거가 약해진다)

 

간접광(Indirect Illumination)

직접광으로부터 바운스된 빛이 재차로 영향을 미치는 영역

 

PRT - IBL

PRT(Precomputed Radiance Transfer)

정적(static)

이 모델에서는 동적(움직이는 것)은 구현이 안 된다

 

IBL(Image-Based Lighting)

이미지 기반 조명

(고해상도의)이미지를 기반으로 전역 조명을 근사

 

그래서 아트에서는 흔히 HDR(I)라고도 하기도 함

(단 HDR의 실제 의미하고는 직접적인 연관이 없음)

 

IBL 적용

지금까지는 한 개의 Ray만을 고려했다(Light Vector)

이제 사방에서 빛이 들어온다고 가정했을 때 어떻게 해야 할 것인가?

 

Diffuse Irradiance

우선 Diffuse(확산광)부터!

 

BRDF는 하나의 빛(Ray)에 대한 것이지만 IBL에 사용되는 공식은 같다

미리 픽셀을 계산해서 반구에 저장?

 

단, p가 가운데 있다는 중요한 전제!!

당연히 p가 움직이면 차이가 나야하지만...GI도 바꿔야 하는데...연산이...

하지만 재연산을 안 해도 스카이 박스(Outdoor)일 경우에는 사실 큰 차이가 안 난다

문제는 실내의 경우!

예를 들어 빨간 방에서 초록 방으로 이동했을 때 변화를 주지 않으면 바로 티가 난다

 

필요한 맵은?

Environment Map
Irradiance Map (Diffuse term)
Radiance Map (Specular term)
Pre-Filter Map + BDRF LookUp Table

사용하는 거 자체는 환경 맵에서 추려서 IBL를 만드는 것 뿐?

사실 아직 이해하기 어렵다...

 

SSS