Normal Mapping for Precomputed Radiance Transfer - PowerPoint PPT Presentation

About This Presentation
Title:

Normal Mapping for Precomputed Radiance Transfer

Description:

Normal Mapping for Precomputed Radiance ... local frame Diagonal Convolution Matrix Clamped cosine kernel ... Mapping for Precomputed Radiance Transfer – PowerPoint PPT presentation

Number of Views:92
Avg rating:3.0/5.0
Slides: 35
Provided by: Peter1509
Learn more at: http://www.ppsloan.org
Category:

less

Transcript and Presenter's Notes

Title: Normal Mapping for Precomputed Radiance Transfer


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
PRT
7
PRT
8
Bi-Scale Radiance Transfer
9
Bi-Scale Radiance Transfer
  • l vector source radiance spherical function
  • Mp 25x25 transfer matrix at point p (source ?
    transferred incident)
  • q(xp) 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
  • Mp 25x25 transfer matrix at point p (source ?
    transferred incident)
  • q(xp) 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
  • Mp 25x25 transfer matrix at point p (source ?
    transferred incident)
  • q(xp) 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
  • 9xO2 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 Standard
HL2
SAL
PRT
24
Comparison
Gold Standard
HL2
SAL
PRT
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 Aij equals evaluating
convolved light basis function j in normal
direction i
26
Normal Mapping for PRT
27
Normal Mapping for PRT
  • Compute SVD of A

Nx9 matrix (each column is a normal basis
texture)
9x9 diagonal matrix (singular values)
9x9 matrix
28
Normal Mapping for PRT
  • Old equation
  • New equation

29
Normal Mapping for PRT
  • Use first M singular values
  • MxO2 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 Normal0.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
Write a Comment
User Comments (0)
About PowerShow.com