choi jihyun ndc2011

72
PRT(Precomputed Radiance Transfer) SH(Spherical Harmonics) 개괄 NEXON CSO팀 클라이언트 파트 최지현

Upload: honestee

Post on 10-Jul-2015

1.038 views

Category:

Technology


0 download

DESCRIPTION

PRT(Precomputed Radiance Transfer) & SH(Spherical Harmonics)

TRANSCRIPT

Page 1: Choi JiHyun  NDC2011

PRT(Precomputed Radiance Transfer) 및SH(Spherical Harmonics) 개괄

NEXON

CSO팀 클라이언트 파트

최지현

Page 2: Choi JiHyun  NDC2011

NEXON카운터 스트라이크 온라인 팀

클라이언트 프로그래밍 파트장

최지현

발표자 소개

Page 3: Choi JiHyun  NDC2011

Contents

01.Precomputed Radiance Transfer

02.Irradiance Environment Map

03.Spherical Harmonics Projection & Reconstruction

04.Spherical Harmonics “USEFUL” properties

05.Spherical Harmonics Example

06.QnA

Page 4: Choi JiHyun  NDC2011

오늘 설명할 내용

1.모든 정점(맵)에각 정점의 환경맵을 저장하자Precomputed Radiance Transfer

Page 5: Choi JiHyun  NDC2011

오늘 설명할 내용

2.환경맵을 압축해서 저장하자Spherical Harmonics as a Compression Tool

2.1.압축된 환경맵을 렌더링에 이용하자

Page 6: Choi JiHyun  NDC2011

오늘 설명할 내용

3.Then, in Detail...그럼, SH는 어떻게 사용하나?Spherical Harmonics USEFUL Property

Page 7: Choi JiHyun  NDC2011

STEP1

1.모든 정점(맵)에각 정점의 환경맵을 저장하자Precomputed Radiance Transfer

Page 8: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Page 9: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Direct Lighting

Self Shadow

Page 10: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Direct Lighting

Interreflection

Self Shadow

Page 11: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Direct Lighting

Interreflection

Subsurface Scattering

Self Shadow

Page 12: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Page 13: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Page 14: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Page 15: Choi JiHyun  NDC2011

Precomputed Radiance Transfer

Page 16: Choi JiHyun  NDC2011

STEP2

2.환경맵을 압축해서 저장하자Spherical Harmonics as a Compression Tool

2.1.압축된 환경맵을 렌더링에 이용하자

Page 17: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

Page 18: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

Page 19: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

Page 20: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

Page 21: Choi JiHyun  NDC2011

Irradiance Environment Map

Environment Map 을

{θ Env(Green)} 의 함수로 만들 수 있다!

)()( greenirclei fCL

Environment Map 을

{(θ, φ) Env(R,G,B)} 의 함수로 만들 수 있다!

),()( rgbpherei fSL

+ r, b channel

Page 22: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

f

Page 23: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

f~

Page 24: Choi JiHyun  NDC2011

0 10 30 45 60 70 80 90 100 120 135 150 160 170 180

R 255 128 255 255 255 255 128 0 0 0 0 0 0 0 255

G 0 0 0 128 255 255 255 128 0 64 0 64 128 255 255

B 128 0 0 64 0 128 255 255 255 128 255 64 0 0 0

Irradiance Environment Map

f~~

Page 25: Choi JiHyun  NDC2011

Irradiance Environment Map

Environment Map 을

{(θ, φ) Env(R,G,B)} 의 함수로 만들 수 있다!

),()( rgbpherei fSL

+ r, b channel

Environment Map Env(R,G,B) 함수를

여기에 근사하는 함수로 만들 수 있다!

),(~~

),( rgbrgb ff

Approximation

Page 26: Choi JiHyun  NDC2011

Irradiance Environment Map

9x3

Low Pass Filtering

64x64x8x3

= Compressing

= Low Frequency Irradiance

Page 27: Choi JiHyun  NDC2011

STEP3

2.환경맵을 압축해서 저장하자

as a Compression Tool

2.1.압축된 환경맵을 렌더링에 이용하자

Page 28: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Projection To Basis

),( iL

0

0C

1

1

C

0

1C

1

1C

Page 29: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Environment Map Env(R,G,B) 함수를

여기에 근사하는 함수로 만들 수 있다!

),(~~

),( rgbrgb ff

Approximation

Approximation

Environment Map을 근사하는 함수를

몇개의 상수로 표현할 수 있다!

Tn

nrgb ccf 1

1

0

0 ...),(~~

Page 30: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Reconstruction By Basis

0

0C

1

1

C

0

1C

1

1C

),( iL

Page 31: Choi JiHyun  NDC2011

일반적으로, 앞서 언급된Spherical Coordinate 상의 Basis 를

라고 함.

),( m

ly

Page 32: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

0 1 2 3 4-1-2-3-4m =

orderlnbandlmlliyy i

m

l :1:)1(),(),(

Page 33: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Spherical Harmonics Math

0),(cos

0),(cos)sin(2

0),(cos)cos(2

),(00 mPK

mPmK

mPmK

y

ll

m

l

m

l

m

l

m

l

m

l

)()12()(

)1(!)!12()1()(

)()11()()12()()1(

1

2/2

2

xPmxxP

xmxP

xPmxPlxxPm

m

m

m

m

mmm

m

m

l

m

l

m

l

)!1(

)!1(

4

)12(

m

mlK m

l

lmlNl ,

Spherical Harmonics Definition

Associated Legendre Polynomials Recursive Formulae Spherical Harmonics Normalization Constants

이해하는 사람은 천재...

Page 34: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

n

n

nc

c

c

c

1

1

0

1

1

1

0

0

...

...

Projection To

Spherical Harmonics Basis

Function ),( m

ly

),( iL

Reconstruction By

Spherical Harmonics Basis

Function ),( m

ly

n infinite

),( iL

Page 35: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

3

2

2

0

1

1

1

0

0

...

...

n

c

c

c

c

Projection To

Spherical Harmonics Basis

Function ),( m

ly

),( iL

Reconstruction By

Spherical Harmonics Basis

Function ),( m

ly

n=3 order

3^3=9 coefficient

),(

~

iL

Page 36: Choi JiHyun  NDC2011

MATH TIME!한방에 이해하는 사람은 천재!

나중에 집에서 천천히 생각해보세용~

Page 37: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Projection Math = I WANT

s

m

l

m

l dssysfc )()(

ddyfc ii sin),(),(

2

0 0

N

j

jiji xyxfN

c1

)()(4

mllidssysfcs

ii )1()()(

// Monte Carlo Integration

// Spherical Coordinate

// band index

// 모든 방향의 Environment Map

Pixel 값과 해당 방향의 SH Basis

Function 를 곱해서 다~ 더하면 됨

m

lc

Page 38: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Reconstruction Math = I WANT ),(

~

iL

),(),(1

0

~

n

l

l

lm

m

l

m

l yciL

),(: iL 0

0C

1

1C 0

1C 1

1C

..........

),(0

0 y

),(1

1 y ),(0

1 y ),(1

1 y

),(2

2 y ),(1

2 y ),(0

2 y ),(1

2 y ),(2

2 y2

2C 1

2C 0

2C 1

2C 2

2C

),(: iL 0

0C

1

1C 0

1C 1

1C

2

2C 1

2C 0

2C 1

2C 2

2C

..........

Page 39: Choi JiHyun  NDC2011

Spherical Harmonics Projection & Reconstruction

Reconstruction Math = I WANT ),(

~

iL

),(),(1

0

~

n

l

l

lm

m

l

m

l yciL

),(: iL 0

0C

1

1C 0

1C 1

1C

..........

),(0

0 y

),(1

1 y ),(0

1 y ),(1

1 y

),(2

2 y ),(1

2 y ),(0

2 y ),(1

2 y ),(2

2 y2

2C 1

2C 0

2C 1

2C 2

2C

Page 40: Choi JiHyun  NDC2011

STEP4

[2부]

Page 41: Choi JiHyun  NDC2011

STEP3

시간 상 설명은핵심적인 것만!

Page 42: Choi JiHyun  NDC2011

Spherical Harmonics

“USEFUL” properties

01.Quadratric Polynorminal Form

02.Double(Dot) Product

03.SH Rotation (ZYZ, Ivanic)

04.Zonal Harmonics Rotation

05.Analytic Light Source

06.Extract Dominant Direction Light

Page 43: Choi JiHyun  NDC2011

01.Quadratric Polynorminal Form

을 사용하자!)(nym

l

),( m

ly )),,(( zyxnym

l

cos

sinsin

cossin

z

y

x

),( m

ly 말고

Page 44: Choi JiHyun  NDC2011

01.Quadratric Polynorminal Form

0),(cos

0),(cos)sin(2

0),(cos)cos(2

),(00 mPK

mPmK

mPmK

y

ll

m

l

m

l

m

l

m

l

m

l

Reconstruction 을 하더라도 는 계산량이 많고Shader 로 표현하기 어려우며,

게임에서 Spherical Coordinate 는 잘 사용하지도 않는다.

),( m

ly

)()12()(

)1(!)!12()1()(

)()11()()12()()1(

1

2/2

2

xPmxxP

xmxP

xPmxPlxxPm

m

m

m

m

mmm

m

m

l

m

l

m

l

)!1(

)!1(

4

)12(

m

mlK m

l

Spherical Coodinate (θ, φ) 를 Cartesian Coordinate (x, y, z)

로 변환해서 를 직접 풀어 이용하자.),( m

ly

cos

sinsin

cossin

z

y

x

Page 45: Choi JiHyun  NDC2011

01.Quadratic Polynorminal Form

주어짂 normal 에 대하여주어짂 SH Coefficient Vector 의 SH Reconstruction 은?

)),,(( zyxnym

l

4

)(15)(,

2

15)(

,4

)13(5)(,

2

15)(,

2

15)(

,2

3)(,

2

3)(,

2

3)(

,2

1)(

222

2

1

2

20

2

1

2

2

2

1

1

0

1

1

1

0

0

yxny

xzny

zny

yzny

yxny

xny

zny

yny

ny

)()()()()(

)()()(

)()),,((

2

2

2

2

1

2

1

2

0

2

0

2

1

2

1

2

2

2

2

2

1

1

1

1

0

1

0

1

1

1

1

1

0

0

0

0

nycnycnycnycnyc

nycnycnyc

nyczyxnLi

Page 46: Choi JiHyun  NDC2011

02.Double(Dot) Product

두 함수의 곱을 Sphere 상에서적분하는 Rendering Equation 을

빠르게 계산할 수 있다!

iiiri

S

rrr dxxVxxGxLxfxL ),(),(),(),(),(

ir Lf iLG VLior or or ...

Page 47: Choi JiHyun  NDC2011

02.Double(Dot) Product

s

n

i

iidcdssVsL

2)1(

0

)()(

X =

iCsL )( idsV )( cd

o

Tn

n

n

n Lddcc

1

1

0

0

1

1

0

0 ......

1x9 9x1 1x1

Page 48: Choi JiHyun  NDC2011

02.Double(Dot) Product – PRT Revisted.

2

2

1

2

1

1

0

0

2

21

2

21

2

22

0

02

2

21

0

01

2

20

0

00

1

2

1

0

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

i

i

i

i

cc

cc

cc

cc

vc

vc

vc

vc

nn

nnn

n

"

"

"":

"":

...

...

...

"":

"":

11

22

11

00

Basis

Some

To

Light

Env

SomeBasisToEnvMapv

SomeBasisToEnvMapv

SomeBasisToEnvMapv

SomeBasisToEnvMapv

nn

nn

each vertex color = dot([email protected], envlight.to.some.basis)

“Some Basis” Spherical Harmonics

“Some Basis” Ambient Cube Basis

“Some Basis” Wavelet Basis

LV

B

Page 49: Choi JiHyun  NDC2011

03.SH Rotation

SH Rotation 은마치 Vector3 의 Rotation 처럼

Linear Matrix 로표현 가능하다!

Page 50: Choi JiHyun  NDC2011

03.Rotation - ZYZ

SH – Rotation is Linear Operation!

2

2

1

2

0

2

1

2

2

2

1

1

0

1

1

1

0

0

c

c

c

c

c

c

c

c

c

2

2

1

2

0

2

1

2

2

2

1

1

0

1

1

1

0

0

b

b

b

b

b

b

b

b

b

= x

Spherical Coordinate 의 특성상 Z 축을 중심으로φ 만큼 회전하는 matrix 는 만들기 쉽다

ZXZXZZYZR 9090),,(

Page 51: Choi JiHyun  NDC2011

03.Rotation - Ivanic

ZYZ는 별로 nice 하지 않는데?

Spherical Harmonics 의 Rotation의 Recurrence Relation 한성질을 이용해서 한방에(Fast) Matrix 를 구하자

= Rotation Matrices for Real Spherical Harmonics by Ivanic

zzzyzx

yzyyyx

xzxyxx

RRR

RRR

RRR Rotation Matrix

By Local Frame

Page 52: Choi JiHyun  NDC2011

03.Rotation Invariant

Rotate Project

Rotate

Equal.BMP

Page 53: Choi JiHyun  NDC2011

03.Rotation – Ivanic - Shader

Page 54: Choi JiHyun  NDC2011

04.Zonal Harmonics

Z축에 symmetric 한

Rotation 을 더 빠르게 할 수 있다!

Page 55: Choi JiHyun  NDC2011

04.Zonal Harmonics

Circular Symmetry around Z-axis

Spherical Harmonic Subset

Simple & Cheap!

Page 56: Choi JiHyun  NDC2011

04.Zonal Harmonics - Rotation

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

xxx

xxx

xxx

0000

0000

0000

0000

0000

000000

000000

000000

000000001

2

2

1

2

0

2

1

2

2

2

1

1

0

1

1

1

0

0

c

c

c

c

c

c

c

c

c

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

xxx

xxx

xxx

0000

0000

0000

0000

0000

000000

000000

000000

000000001

0

0

0

0

0

0

0

2

0

1

0

0

c

c

c

Page 57: Choi JiHyun  NDC2011

04.Zonal Harmonics

1개 : 9x3=27 float

18개 : 9x3x18=486 float

모든 Vertex(Lumel) 에 대한 SH-Rotation 이 필요한 경우,

계산량이 많으므로 이경우 Zonal Harmonics 를 이용한다!

Page 58: Choi JiHyun  NDC2011

05.Analytic Light Source

우리는 Point(Direction)Light 에 익숙하니이런 형태의 정형화된 Light 로부터

SH Coefficient 를 빠르게 계산 가능하다면다양한 활용성이 기대되지 않을까?

Page 59: Choi JiHyun  NDC2011

05.Analytic Light Source

우리는 임의의 Incident Light Source : Environment Map 을SH Basis 에 Projection 해서 를 얻어낼 수 있다.m

lc

그러면, 임의의 Environment Map 이 아니라 “자주 사용하는” 정형화된형태의 Light Source 로부터 를 얻어낼 수도 있지않을까?m

lc

Cone Light Analytic Models

ddyfc ii sin),(),(

2

0 0

ddyc ii sincos),(

2

0 0

Page 60: Choi JiHyun  NDC2011

05.Analytic Light Source

0

0

)1)))(cos(cos(1)(cos(52

1

0

0

0

)sin(32

1

0

))cos(1(

2

2

1

2

0

2

1

2

2

2

1

1

20

1

1

1

0

0

c

c

c

c

c

c

c

c

c

Zonal Harmonics!

Cone Light Analytic Models

0-band

1-band

2-band

Page 61: Choi JiHyun  NDC2011

06.Extract Dominant Directional Light

주어진 SH Coefficient 에서

를 찾아내서다양한 곳에 사용해보자.

Page 62: Choi JiHyun  NDC2011

06.Extract Dominant Directional Light

0,))((1

0

2

EdcyLEn

i

ii

1

0

21

0

)(/))((n

i

i

n

i

ii dydyLc

// least square method

// minimizing E

// directional light color

)...(. 0

1

1

1

1

1 xyzcxyzcxyzcnormalizexyzdir // direction vector

// using SH linear term

// using grayscale intens.

Shader 가 지원안되는 저사양 그래픽 카드에서 사용해보자PRT Lighting 시 Specular BRDF Lighting 에 사용해보자......등등

Page 63: Choi JiHyun  NDC2011

STEP4

EXAMPLE TIME!

Page 64: Choi JiHyun  NDC2011

SH – Applications

Halo3

Crysis2

Injecting VPL to 3D Texture :

Cone Light Source (Analytic Model)

Zonal Harmonics Rotation

Spherical Harmonics Lightmap

Diffuse : Quadradtic Polynormial Form

(SH Irradiance)

Specular :

SH Rotation(Local Frame),

Double Product(Light * BRDF),

Extract Dominant Directional Light

Page 65: Choi JiHyun  NDC2011

SH - Sample

Page 66: Choi JiHyun  NDC2011
Page 67: Choi JiHyun  NDC2011

SH - Sample

Page 68: Choi JiHyun  NDC2011
Page 69: Choi JiHyun  NDC2011
Page 70: Choi JiHyun  NDC2011

SH - Sample

Diffuse Shadowed (A)

Diffuse Interreflected (RGB)

Diffuse Shadow-Interreflected (NOT-USED)

+

SphereMap NormalMap DiffuseMap

Page 71: Choi JiHyun  NDC2011

END!

Q&A

Page 72: Choi JiHyun  NDC2011

Reference

1. An Efficient Representation for Irradiance Environment Maps - Ravi Ramamoorthi, Pat Hanrahan

2. Spherical Harmonics Lighting : The Gritty Details – Robin Green

3. Stupid Spherical Harmonics (SH) Tricks - Peter-Pike Sloan

4. Lighting and Material of Halo3 – Hao Chen, Xinguo Liu

5. Light Propagation Volumes in CryEngine 3 - Anton Kaplanyan

......and more!