normal mapping for precomputed radiance transfer
Download
Skip this Video
Download Presentation
Normal Mapping for Precomputed Radiance Transfer

Loading in 2 Seconds...

play fullscreen
1 / 34

Normal Mapping for Precomputed Radiance Transfer - PowerPoint PPT Presentation


  • 132 Views
  • Uploaded on

Normal Mapping for Precomputed Radiance Transfer. Peter-Pike Sloan Microsoft. Inspiration. [McTaggart04] Half-Life 2 “Radiosity Normal Mapping”. Related Work. [Willmott99] Vector irradiance formulation of radiosity (for accelerating computation)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Normal Mapping for Precomputed Radiance Transfer' - mayes


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
inspiration
Inspiration
  • [McTaggart04] Half-Life 2 “Radiosity Normal Mapping”
related work
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”
slide4
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
bi scale radiance transfer1
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

bi scale radiance transfer2
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

bi scale radiance transfer3
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

limitations
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
diffuse normal maps
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Distant Lighting Environment

diffuse normal maps1
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Distant Radiance to Transferred Incident Radiance

In local frame

diffuse normal maps2
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Diagonal Convolution Matrix

Clamped cosine kernel

diffuse normal maps3
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Irradiance Environment Map

diffuse normal maps4
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Irradiance Environment Map

diffuse normal maps5
Diffuse + Normal Maps
  • Quadratic SH [Ramamoorthi2001]

Evaluate SH basis with normal

concerns
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
analytic basis
Analytic Basis

Project into new basis (fewer rows)

comparison
Comparison

PRT

Gold Standard

HL2

SAL

comparison1
Comparison

PRT

Gold Standard

HL2

SAL

normal mapping for prt
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”

normal mapping for prt2
Normal Mapping for PRT
  • Compute SVD of A

Nx9 matrix (each column is a “normal basis” texture)

9x9 diagonal matrix (singular values)

9x9 matrix

normal mapping for prt3
Normal Mapping for PRT
  • Old equation
  • New equation
normal mapping for prt4
Normal Mapping for PRT
  • Use first M singular values
  • MxO2 matrix
  • M channel “normal direction” texture
pixel shader
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);

}

conclusions
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
acknowledgments
Acknowledgments
  • Gary McTaggart for HL2 images
  • Shanon Drone for Models
  • Paul Debevec for Light Probes
ad