physically based rendering 같은 조명 효과를 위한...

71
네오위즈 CRS 조경준 Physically Based Rendering 실사 같은 조명 효과를 위한 방법들

Upload: phungbao

Post on 29-May-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

네오위즈 CRS 조경준

Physically Based Rendering

실사 같은 조명 효과를 위한 방법들

우리의 꿈

Uncharted 3 – Naughty Dog

우리의 꿈

Crysis 2 - Crytek

우리의 꿈

Battlefield 3 – DICE

How?

???

우리의 현실...

우리의 현실...

우린 안될거야 아마...

Motivation

AAA 급의 그래픽을 뽑고 싶다 1. 값비싼 엔진도 좋지만…

- 엔진에 제공하는 기능만으로는 차별화할 수 없다

- 자체적으로 훌륭한 결과를 내는 경우도 많음 (ex. Uncharted 3)

- 기왕이면 외화도 좀 줄이고… (실은 사장님이 언리얼 안 사주셨어요)

2. Physically Based Rendering

- 특정 기술을 지칭하기 보다는 전반적인 접근 방식

Physically Based Rendering

Volumetric Rendering Equation

Rendering Equation

첫째 날 하나님께서 말씀하시기를 Where : surface position : outward direction : position in participating media : BRDF : transmittance

라고 하시어 빛을 창조하셨느니라

dtLTLTL titstrsssro ),()(),(),(),(),( xxxxxxxx

dLfLL sisrsess ))(,(),,(),(),( nxxxx

),(),(),( srsess LLL xxx

sx

tx),,( srf x

),( trT xx

Physically Based

What?

- 물리 법칙에 기반한 Lighting(조명) / Reflectance(반사) Model을 사용

Why?

1. Photorealistic 결과를 얻기 쉬워짐

2. 다양한 조명 환경에서도 일관된 결과를 보임

3. 각종 Fake 연산들의 필요성이 줄어든다. (ex. Half-Lambert)

4. Material Parameter가 간결해짐

- 아티스트들의 노가다가 줄어든다!!!

Rendering

Wikipedia 가라사대

1. Rendering이란 컴퓨터 프로그램을 통해 모델 또는 모델들로 구성된 장면으로부터

이미지를 생성하는 과정이다 …(중략)…

2. 가상의 조명 하에서 장면이 비교적 사실적으로 보이려면, Rendering Software는

Rendering Equation을 풀어야 한다.

- 2차 방정식 근의 공식도 가물가물 한데…

- 이미 훌륭하신 분들이 풀어 주셨으므로 우리는 참고만…

- Divide And Conquer!!!

준비물

Linear Space Rendering 1. Gamma Correction

2. sRGB Space -> Linear Space 변환

HDR + Tone Mapping 1. LDR에서는 조명 연산 누적으로 인한 결과가 Clamp됨(잘림)

2. LDR의 Precision으로는 조명의 계조가 매끄럽지 못함

3. 좋은 Tone Mapping이 최종 결과물을 좌우

Deferred Shading 1. 이후 소개될 일부 효과들에서 Deferred Shading의 G-Buffer를 필요로 함

2. 혹은 Variation (Light Pre-pass Rendering, Inferred Rendering…)

Rendering Equation

Kajiya, James (1986) - 진공 상태를 가정

Surface Output Light (표면 라이팅 결과)

Emissive Light (자체발광)

BRDF (나중에 설명..)

Input Light (입력광)

dLfLL sisrsess ))(,(),,(),(),( nxxxx

BRDF의 Cosine 성분

Reflected Light (반사광)

Rendering Equation

Light Flow

sx

iLeL

rLiL

Emissive Light Input Light

(Direct)

Input Light (Indirect)

Reflected Light

Surface Point

iLIrradiance

Light Source Viewer

Emissive Light

Emissive Light (자체발광)

dLfLL sisrsess ))(,(),,(),(),( nxxxx

Emissive Light

In Real Life

In Game

매우 간단하므로 패스

Input Light

Input Light (입력광)

dLfLL sisrsess ))(,(),,(),(),( nxxxx

Input Light

Direct Light – 광원에 의한 직접광

Indirect Light – 표면 반사, 산란 등에 의한 간접광

1. Global Illumination

- Light Map – Static(기존), Dynamic(Enlighten, Battlefield 3)

- Light Propagation Volumes – Crytek, 우리의 선택

2. Image Based Lighting (IBL), 우리의 선택

- Environment(Cube) Map – 이미 널리 사용되고 있음

- Irradiance Environment Map

Indirect Light - Light Propagation Volumes

Real-time Global Illumination

1. Anton Kaplanyan에 의해 제안 (Crytek) [2009]

2. CryENGINE 3(Crysis 2)에 적용됨

3. Reflective Shadow Map에 기반

- Flux(광량), Normal, Depth로 구성

- VPL(Virtual Point Light)의 개념 적용

4. Spherical Harmonics에 의한 전파

- 2nd Band까지 적용 (4 Coefficients)

Spherical Harmonics

Light Propagation Volumes

Overview

Reflective Shadow Map 생성

Radiance Injection

Radiance Propagation

Scene Lighting

Radiance Propagation

Flux, Normal, Depth

VPL이 속하는 LPV에 SH Coefficients로 변경 및 누적

인접 Cell로의 Radiance 전파

G-Buffer를 참조하여 Render

Light Propagation Volumes

Cascaded Light Propagation Volumes

1. Cascaded Shadow Map과 유사

2. 하나의 LPV로는 넓은 영역에 적용이 어려움

- 3차원 Grid이므로 O(N3)의 복잡도

- 근경에는 세밀한 LPV를 사용

- 원경에는 간격이 큰 LPV를 사용

Cascaded LPV

Without LPVs

With LPVs

비교

Indirect Light - Irradiance Environment Map

Real-Time에 생성된 큐브맵을 사용

반구면을 따라 Convolution 1. Texture Look-up이 너무 많음

- ex. 64 짜리 큐브맵으로 32 짜리 Irradiance Env. Map 생성

-> 약 1억5천만번 이상의 샘플링 필요

2. Spherical Harmonics를 이용해 간소화

- 위의 예시가 약 22만 X 상수배 정도로 감소

표면의 Normal 방향을 따라 Sampling

Constant Ambient

Irradiance Environment Map

BRDF

BRDF (나중에 설명..)

dLfLL sisrsess ))(,(),,(),(),( nxxxx

BRDF

Bidirectional Radiance Distribution Function

표면상의 한 점에서의 입사광 대비 반사광의 양을 정의 1. Lambertian

2. Oren-Nayar

3. Phong

4. Blinn-Phong

5. Cook-Torrance

6. Ward

7. Ashikhmin

8. Kajiya-Kay

9. …

가장 대중적 하지만 에너지가 보존되지 않음

Blinn-Phong Model에 에너지 보존을 고려 1. Specular 계수와 상관 없이 동일한 면적(에너지)를 표현

- 정규화 계수 적용

2. 선형식으로 근사해서 사용 가능

Normalized Blinn-Phong

동일한 면적

다른 Specular 계수

Fresnel Term을 고려 1. Schlick의 근사

- 단순한 연산으로 실제 Fresnel 방정식과 유사한 결과를 나타냄

2. Diffuse에도 에너지 보존을 고려

3. 최종 결과 – 다소 복잡해 보이지만 기존의 연산 결과를 수식에 대입하기만 하면 됨

Normalized Blinn-Phong

기존 Diffuse 기존 Specular

Blinn-Phong

Normalized Blinn-Phong

비교

Screen Space Sub-Surface Scattering

Why? 1. 사람의 눈은 피부를 구별하는데 익숙함

2. BRDF(Bidirectional Radiance Distribution Function)으로는 피하 산란을

표현할 수 없음

3. BSSRDF(Bidirectional Surface Scattering Reflectance Distribution Function)

- Subsurface Scattering

Screen Space Sub-Surface Scattering

Overview

Blur

Blend X +

Mask

Normal

Depth

Light Layer 1 Layer 2 Layer 3

Albedo Specular

Final Image

Without SSSSS

With SSSSS

비교

Volumetric Rendering Equation

Rendering Equation은 진공의 상태를 가정 1. 현실에서의 대부분의 환경은 진공이 아님

2. 중간 매질에서의 산란이 고려되어야 함

Output Light (최종 라이팅 결과)

표면<->관측자 투과율

Surface Output Light (Rendering Equation)

Input Light (입력광)

dtLTLTL titstrsssro ),()(),(),(),(),( xxxxxxxx

매질<->관측자 투과율

Scattering Coefficient (파장에 영향 받음)

Volumetric Rendering Equation

광원의 종류에 따라 구현이 달라짐 1. Sun(Directional) Light – Atmospheric Scattering

2. Point/Spot Lights – Single Scattering

Atmospheric Scattering

대기 중 태양광의 산란을 고려 1. Rayleigh Scattering

2. Mie Scattering

Rayleigh Scattering

빛의 파장보다 작은 대기 입자에 의한 산란을 표현 1. 하늘이 푸르게 보이는 이유

- 파장이 짧은 파란 빛이 더 많이 산란되기 때문

Mie Scattering

입자의 크기와 상관 없이 산란을 표현 1. 하지만 연산 부하를 줄이기 위해 빛의 파장보다 큰 경우로 단순화

- Henyey-Greenstein Phase Function

- 빛의 파장보다 작은 경우는 Rayleigh가 담당

Rayleigh Scattering Only

Rayleigh + Mie Scattering

Single Scattering

대기 중 일반 Point/Spot 광원의 산란을 고려 1. 3가지 빛의 경로에서의 산란이 모두 고려되어야 함

광원->관측자

광원->표면

표면->관측자

Single Scattering Off

Single Scattering On

비교

Putting It All Together

Daylight Sample 1. Irradiance Environment Map

2. Global Illumination (LPVs)

3. SSAO

Night Sample 1. Global Illumination (LPVs)

2. Single Scattering

3. Bokeh DOF

Daylight Sample: Direct Light + Constant Ambient

Direct Light + Irradiance Environment Map

Direct Light + Irradiance Environment Map + Indirect Light (LPVs)

SSAO 추가

초기 이미지

최종 이미지

Night Sample: Ambient + Direct Light

Direct Light + Indirect Light (LPVs)

Direct Light + Single Scattering

Direct Light + Indirect Light + Single Scattering

Bokeh DOF 추가

Night Sample: Ambient + Direct Light 초기 이미지

최종 이미지

Conclusion

지속적인 GPU 성능 증가 1. 남는 GPU 자원을 어디에 쓸 것인가?

- 16x SSAA?

- 그 동안 관심이 조명의 질적인 증가보다는 양적인 증가에 편중됨

- 보다 정확한 조명 연산의 필요성 대두

- Physically Based Rendering

2. 아직 해결해야 할 과제들이 많이 남아 있음

- 해외에서는 많은 논의가 이루어 지고 있음

- 우리도 활기차게 논의해 봅시다

3. 문의하실 내용은 [email protected]으로

References

James T. Kajiya. (1986). The Rendering Equation. Wojciech Jarosz. (2008). Efficient Monte Carlo Methods for Light Transport in Scattering Media. Chapter 4 - Light Transport in Participating Media. Yoshiharu Gotanda. Real-time Physically Based Rendering - Basic Theory -. CEDEC 2011. Yoshiharu Gotanda, Tatsuya Shoji. Real-time Physically Based Rendering - Implementation -. CEDEC 2011. Dimitar Lazarov. Physically Based Lighting in Call of Duty: Black Ops. SIGGRAPH 2011. Carsten Dachsbacher, Marc Stamminger. (2005). Reflective Shadow Maps. University of Erlangen-Nuremberg.

References

Anton Kaplanyan. Light Propagation Volumes in CryEngine 3. SIGGRAPH Course, 2009. Anton Kaplanyan and Carsten Dachsbacher. Cascaded Light Propagation Volumes for Real-Time Indirect Illumination. 2010. Ravi Ramamoorthi, Pat Hanrahan. An Efficient Representation for Irradiance Environment Maps. SIGGRAPH 2001. Gary King. Real-Time Computation of Dynamic Irradiance Environment Maps. GPU Gems 2 - Chapter 10. Sean O’Neil. Accurate Atmospheric Scattering. GPU Gems 2 - Chapter 16. Ralf Stokholm Nielsen. Real Time Rendering of Atmospheric Scattering Effects for Flight Simulators.

References

Carsten Wenzel. Real-time Atmospheric Effects in Games. SIGGRAPH 2006. Bo Sun, Ravi Ramamoorthi, Srinivasa G. Narashmhan, Shree K. Nayar. A Practical Analytic Single Scattering Model for Real Time Rendering. George Borshukov and J. P. Lewis. Realistic human face rendering for “The Matrix Reloaded". In SIGGRAPH '03: ACM SIGGRAPH 2003 Sketches & Applications. Craig Donner and Henrik Wann Jensen. Light diffusion in multi-layered translucent materials. ACM Trans. Graph. 24,3,1032-1039, 2005. Eugene d'Eon and David Luebke. GPU Gems 3, chapter 14, pages 293-347. Addison-Wesley Publishing, 2007.

References

Jorge Jimenez, Veronica Sundstedt, and Diego Gutierrez. Screen-space perceptual rendering of human skin. ACM Transactions on Applied Perception, 6(4), 2009. Morten S. Mikkelsen. Skin Rendering by Pseudo-Separable Cross Bilateral Filtering. 2010.

THANK YOU