340 likes | 363 Views
Explore dynamic BRDF and lighting for gaming and production, using single GPU shader with minimal code. Implement filtered importance sampling for real-time glossy surface reflections.
E N D
Real-time Shading with Filtered Importance Sampling Mark Colbert University of Central Florida JaroslavKřivánek Czech Technical University in Prague
Motivation • Dynamic BRDF and lighting • Applications • Material design • Gaming • Production pipeline friendly • Single GPU shader • No precomputation • Minimal code base
Our Approach BRDF proportional sampling Environment map filtering
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 ]
Illumination Integral Ignores visibility[ Kozlowski and Kautz 2007 ] Computationally expensive
Importance Sampling Choose a few random samples Select according to the BRDF
Importance Sampling Result 40 samples per pixel
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
Same Sequence Result 40 samples per pixel
Filtered Importance Sampling • Filter environment mapbetween samples over hemisphere • Samples distributed by the BRDF • Support approximately equivalent to:
Filtering Use MIP-maps Level proportional to log of filter size
Implementation • Auto-generated MIP-map • Dual paraboloids • Single GPU Shader • Sum together filtered samples
ResultsSphere – Grace Probe Stochastic No Filtering Our Result Reference
ResultsBunny – Ennis Probe Stochastic No Filtering Our Result Reference
Approximations Constant BRDF across filter Isotropic filter shape Tri-linear filtering
RMS Error Phong Reflection - Ennis Light Probe n=10 n=100 n=1000
Performance 512x512 Sphere
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/
Which distribution? • Product of lighting and BRDF • Requires bookkeeping • Too expensive • Lighting • BRDF
Which distribution? • Product of lighting and BRDF • Lighting • Too many samples for glossy surfaces • BRDF
Which distribution? • Product of lighting and BRDF • Lighting • BRDF • Computationally efficient
Environment Mapping Error Support Region • Dual Paraboloid
Environment Mapping • Cube Maps • Low distortion • Accelerated by GPU • Decimation/reconstruction filters non-spherical • Introduces Seams
Environment Mapping • Latitude/Longitude • Too much distortion at poles
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 ]
Importance Sampling Random Samples on Unit Square PDF-Proportional Samples on Hemisphere 1 PDF Mapping 0 0 1
Pseudocode float4FilteredIS(float3 viewing : TEXCOORD1 uniform sampler2Denv) : COLOR { float4 c = 0; // sample loop for (int k=0; k < N; k++) { float2 xi = quasi_random_seq(k); float3 u = sample_material(xi); floatpdf = p(u, viewing); floatlod = compute_lod(u, pdf); float3 L = tex2Dlod(env,float4(u, lod)); c += L*f(u,viewing)/pdf; } returnc/N; }
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
Ideal Sample Filter Design h – Filter function More expensive than illumination integral
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