Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Normal Mapping for Precomputed Radiance Transfer Peter-Pike Sloan Microsoft."— Presentation transcript:

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


Download ppt "Normal Mapping for Precomputed Radiance Transfer Peter-Pike Sloan Microsoft."

Similar presentations


Ads by Google