Download presentation

Presentation is loading. Please wait.

Published byJoshua Fitzpatrick Modified over 3 years ago

1
Normal Mapping for Precomputed Radiance Transfer Peter-Pike Sloan Microsoft

2
Inspiration [McTaggart04] Half-Life 2 Radiosity Normal Mapping

3
Related Work [Willmott99] Vector irradiance formulation of radiosity (for accelerating computation) [Tabellion04] Lighting model similar to above (dominant light direction) [Good2005] Spherical Harmonic Light Maps

4
Goal Develop lightweight techniques to decouple normal variation (ala HL2) –From parameterized models of lighting (PRT) –For rigid objects Non goals –Modeling local GI of the bumps [Sig05] –Masking effects –Glossy materials

5
PRT

6

7

8
Bi-Scale Radiance Transfer

9
l : vector = source radiance spherical function M p : 25x25 transfer matrix at point p (source transferred incident) q(x p ) : ID map (2D 2D, maps RTT patch over surface) b(x,v) : RTT (4D 25D, tabulated over small spatial patch) applies macro-scale transferred radiance to meso-scale RTT

10
Bi-Scale Radiance Transfer l : vector = source radiance spherical function M p : 25x25 transfer matrix at point p (source transferred incident) q(x p ) : ID map (2D 2D, maps RTT patch over surface) b(x,v) : RTT (4D 25D, tabulated over small spatial patch) applies macro-scale transferred radiance to meso-scale RTT

11
Bi-Scale Radiance Transfer l : vector = source radiance spherical function M p : 25x25 transfer matrix at point p (source transferred incident) q(x p ) : ID map (2D 2D, maps RTT patch over surface) b(x,v) : RTT (4D 25D, tabulated over small spatial patch) applies macro-scale transferred radiance to meso-scale RTT

12
Limitations Expensive –Stores 64 response vectors that are 9-36D (x3 for spectral) Parallax mapping cheaper way of getting masking –Local radiance is too much data (9 – 36 x 3) for low res textures/per-vertex Add constraints –Just model normal variation –Diffuse only

13
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Distant Lighting Environment

14
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Distant Radiance to Transferred Incident Radiance In local frame

15
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Diagonal Convolution Matrix Clamped cosine kernel

16
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Irradiance Environment Map

17
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Irradiance Environment Map

18
Diffuse + Normal Maps Quadratic SH [Ramamoorthi2001] Evaluate SH basis with normal

19
Concerns Lot of data at low res –9xO 2 matrices (x3 with color bleeding) –Can compress using CPCA [Sig03] Too much data passed from low res to high res –Irradiance emap (27 numbers, 7 interpolators) Alternatives –Project into analytic basis –Separable approximation

20
Analytic Basis Project into new basis (fewer rows)

21
Shifted Associated Legendre Polynomials [Gautron2005]

22
Half-Life 2 Basis

23
Comparison Gold StandardHL2SALPRT

24
Comparison Gold StandardHL2SALPRT

25
Normal Mapping for PRT Use same ideas as BRDF factorization [Kautz and McCool1999] Bi-linear basis functions over hemisphere (4 non-zero) Matrix, rows normal directions columns quadratic SH light A ij equals evaluating convolved light basis function j in normal direction i

26
Normal Mapping for PRT

27
Nx9 matrix (each column is a normal basis texture) 9x9 diagonal matrix (singular values) 9x9 matrix Compute SVD of A

28
Normal Mapping for PRT Old equation New equation

29
Normal Mapping for PRT Use first M singular values MxO 2 matrix M channel normal direction texture

30
Pixel Shader StandardSVDPS( VS_OUT In, out float3 rgb : COLOR ) { float2 Normal = tex2D(NormalSampler, In.TexCoord); float2 vTex = Normal*0.5 + float2(0.5,0.5); float4 vU = tex2D(USampler,vTex); rgb.r = dot(In.cR,vU); rgb.g = dot(In.cG,vU); rgb.b = dot(In.cB,vU); rgb *= tex2D(AlbedoSampler, In.TexCoord); }

31
Comparison

32
Demo

33
Conclusions Lightweight form of normal mapping for PRT –Inspired by Half-Life 2 –For static objects, diffuse only HL2 basis and separable basis seem to be best Experiment with CPCA more [Sig03] Integrate with other techniques –Parallax mapping for masking –Ambient Occlusion for local effects

34
Acknowledgments Gary McTaggart for HL2 images Shanon Drone for Models Paul Debevec for Light Probes

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google