Real-time Shading with Filtered Importance Sampling

Post on 23-Jan-2016

23 views 0 download

Tags:

description

Real-time Shading with Filtered Importance Sampling. Mark Colbert University of Central Florida Jaroslav Křivánek Czech Technical University in Prague. Motivation. Dynamic BRDF and lighting Applications Material design Gaming Production pipeline friendly Single GPU shader - PowerPoint PPT Presentation

transcript

Real-time Shading with Filtered Importance Sampling

Mark ColbertUniversity of Central Florida

Jaroslav KřivánekCzech Technical University in Prague

Real-time Shading with Filtered Importance Sampling

Motivation• Dynamic BRDF and lighting• Applications– Material design– Gaming

• Production pipeline friendly– Single GPU shader– No precomputation– Minimal code base

Demo

Real-time Shading with Filtered Importance Sampling

Our Approach• BRDF proportional sampling• Environment map filtering

Real-time Shading with Filtered Importance Sampling

Related Work• A Unified Approach to

Prefiltered Environment Maps[ Kautz et al. 2000 ]

• Efficient Rendering of Spatial Bi-directional Reflectance Distribution Functions[ McAllister et al. 2002 ]

• Efficient Reflectance and Visibility Approximations for Environment Map Rendering [ Green et al. 2007 ]

• Interactive Illumination with Coherent Shadow Maps[ Ritschel et al. 2007 ]

Real-time Shading with Filtered Importance Sampling

Illumination Integral

• Ignores visibility[ Kozlowski and Kautz 2007 ]

• Computationally expensive

Real-time Shading with Filtered Importance Sampling

Importance Sampling

• Choose a few random samples• Select according to the BRDF

Real-time Shading with Filtered Importance Sampling

Importance Sampling Result

40 samples per pixel

Real-time Shading with Filtered Importance Sampling

Random Numbers on the GPU• Relatively expensive – Random numbers per pixel (computation)– Random number textures (memory/indirection)

• Quasi-random sequence– Good sample distribution (no clumping)– Use same sequence for each pixel

Real-time Shading with Filtered Importance Sampling

Same Sequence Result

40 samples per pixel

Real-time Shading with Filtered Importance Sampling

Filtered Importance Sampling

• Filter environment mapbetween samples over hemisphere– Samples distributed by the BRDF

• Support approximately equivalent to:

Real-time Shading with Filtered Importance Sampling

Filtering• Use MIP-maps• Level proportional to

log of filter size

Real-time Shading with Filtered Importance Sampling

Implementation• Auto-generated MIP-map• Dual paraboloids• Single GPU Shader– Sum together filtered samples

Real-time Shading with Filtered Importance Sampling

ResultsSphere – Grace Probe

Stoc

hasti

c

Refe

renc

e

No

Filte

ring

Our

Res

ult

Real-time Shading with Filtered Importance Sampling

ResultsBunny – Ennis Probe

Stoc

hasti

c

No

Filte

ring

Refe

renc

e

Our

Res

ult

Real-time Shading with Filtered Importance Sampling

Approximations• Constant BRDF across filter• Isotropic filter shape• Tri-linear filtering

Real-time Shading with Filtered Importance Sampling

RMS Error

n=10

n=100

n=1000

Phong Reflection - Ennis Light Probe

Real-time Shading with Filtered Importance Sampling

Performance512x512 Sphere

Real-time Shading with Filtered Importance Sampling

Conclusions• Real-time glossy surface

reflections• Signal Processing Theory• Practical• Affords new interfaces• For more information:

GPU Gems 3• Download the code now!– graphics.cs.ucf.edu/gpusampling/

Questions

Additional Slides

Real-time Shading with Filtered Importance Sampling

Performance

Real-time Shading with Filtered Importance Sampling

• Product of lighting and BRDF– Requires bookkeeping– Too expensive

• Lighting• BRDF

Which distribution?

Real-time Shading with Filtered Importance Sampling

Which distribution?• Product of lighting and BRDF• Lighting– Too many samples for glossy surfaces

• BRDF

Real-time Shading with Filtered Importance Sampling

Which distribution?• Product of lighting and BRDF• Lighting• BRDF– Computationally efficient

Real-time Shading with Filtered Importance Sampling

Environment Mapping• Dual Paraboloid

Error

Support Region

Real-time Shading with Filtered Importance Sampling

Environment Mapping• Cube Maps– Low distortion– Accelerated by GPU– Decimation/reconstruction

filters non-spherical– Introduces Seams

Real-time Shading with Filtered Importance Sampling

Environment Mapping• Latitude/Longitude– Too much distortion at poles

Real-time Shading with Filtered Importance Sampling

Measured BRDF Data• Fast primitive distribution for illustration

[ Secord et al. 2002 ]

• Efficient BRDF importance sampling using a factored representation[ Lawrence et al. 2004 ]

• Probability Trees[ McCool and Harwood 1997 ]

Real-time Shading with Filtered Importance Sampling

Importance Sampling

10

1

0

Random Sampleson Unit Square

PDF-Proportional Samples on Hemisphere

PDF Mapping

Real-time Shading with Filtered Importance Sampling

Pseudocodefloat4 FilteredIS(float3 viewing : TEXCOORD1

uniform sampler2D env) : COLOR{ float4 c = 0; // sample loop for (int k=0; k < N; k++) { float2 xi = quasi_random_seq(k); float3 u = sample_material(xi); float pdf = p(u, viewing); float lod = compute_lod(u, pdf);

float3 L = tex2Dlod(env,float4(u, lod)); c += L*f(u,viewing)/pdf; } return c/N;}

Real-time Shading with Filtered Importance Sampling

Filter Support

• Ideal• Isotropic approximation– Assume sample points are perfectly stratified– Implies area of 1 sample = 1 / N– Use Jacobian approximation for warping

function (Inverted PDF)– Support region of sample 1 / p(i, o) N

Real-time Shading with Filtered Importance Sampling

Ideal Sample Filter Design

• h – Filter function• More expensive than

illumination integral

dhp

fLS k

ok

okiok )(

),(

cos),()(),(

Real-time Shading with Filtered Importance Sampling

Approximate Sample Filter

• Estimate for sample • BRDF PDF– PDF is normalized BRDF– Near constant over single sample

• Low frequency cosine approximation– Use multiple samples to estimate effect

dhLp

fS ki

ok

kokok )()(

),(

cos),(),(