300 likes | 521 Views
Efficient Rendering of Local Subsurface Scattering. Tom Mertens 1 , Jan Kautz 2 , Philippe Bekaert 1 , Frank Van Reeth 1 , Hans-Peter Seidel 2. 1. 2. Overview. Problem Related Work Local Subsurface Scattering Our Approach Implementation & Results Discussion Summary & Future Work.
E N D
Efficient Rendering of Local Subsurface Scattering Tom Mertens1, Jan Kautz2, Philippe Bekaert1, Frank Van Reeth1, Hans-Peter Seidel2 1 2
Overview • Problem • Related Work • Local Subsurface Scattering • Our Approach • Implementation & Results • Discussion • Summary & Future Work
Subsurface Scattering BRDF translucent opaque BSSRDF
BSSRDF model • introduced by Jensen et al.(SIGGRAPH’01) • multiple scattering • materials with high albedo: marble, milk, wax, skin,… function of distance
BSSRDF model • introduced by Jensen et al.(SIGGRAPH’01) • multiple scattering • materials with high albedo: marble, milk, wax, skin,… function of distance
Related Work • Jensen et al. ’02 • General scattering effects • Offline rendering • Mertens et al. ’03 • Dynamic models • General scattering effects • Per vertex • Our paper • Dynamic models • Local scattering effects • Per pixel
Local Subsurface Scattering • Certain cases no global response • Dense materials • Large scale • Distinct appearance! • Rough surface • Local sampling sufficient • But accuracy is important! • Rd decays exponentially • Per vertex too coarse • Apply to skin rendering Global response Only local response
Local Subsurface Scattering Local subsurface scattering Diffuse
Local Subsurface Scattering Local Full
Our Approach • High level description • Employ importance sampling scheme for Rd • Rendering algorithm • Generate importance samples • Render irradiance image • Integrate irradiance image locally in tangent plane
Importance Sampling of Rd • Need to solve integral • Idea: sample according to Rd • Result: set of distances ri • Issues: • Need samples on surface, not ri’s • Need irradiance at sample
Importance sampling of Rd • Solution: • Pick a view e • Render irradiance to image T • Generate sample p’ in tangent plane • Project p’ on surface p • Project p’ into T • to retrieve irradiance E(p’)
Importance sampling of Rd • We take eye position for e • p’ p implies a jacobian J • ratio of solid angles • Integral becomes:
Rendering Algorithm • Generate importance samples in 2D 2D Rd ri
Rendering Algorithm • Render irradiance image
Rendering Algorithm • Integrate image locally in tangent plane
Rendering Algorithm • Store result in final image
Implementation • Variance reduction • Stratified sampling • Deterministic, pseudo random • Interleaved sampling • Noise dither pattern • Combined sampling • Importance + uniform • Irradiance discontinuties • Software implementation • Programmable Graphics Hardware Combined sampling Uniform importance
Implementation • Programmable Graphics Hardware • Overview: • generate 2D samples • quick per-frame preprocess in software • Render irradiance image T • Bind E as texture • For each sample • Look up sample E in T (pixel shader) • Accumulate E in temporary texture • Output temporary texture
Results • ATI Radeon 9700 Pro • 500x500 image, 4 to 5 frames/sec • Some pictures…
Image Quality Color bleeding (forehead) Shadow smoothing
Image Quality nVIDIA’s skin shader Our method
Discussion • No global effects • E.g. backlit ears • Prone to noise • Irradiance discontinuities • Shadow borders • Geometric discontinuities • Kills effect of importance sampling • Ghosting artifacts • Accumulation fill-rate limited ghosting
Summary • Novel technique for local subsurface scattering • Amenable for hardware implementation • Interactive frame rates • Dynamic models • Application: skin rendering
Future Work • Hybrid algorithm • Global response per vertex • Local response per pixel • Eliminate ghosting • Apply technique in texture space • Combine with skin BRDF • Take into account varying blood concentrations
Acknowledgments • Head model courtesy of nVIDIA • Funding: European Regional Development Fund