efficient rendering of local subsurface scattering tom mertens 1, jan kautz 2, philippe bekaert 1,...
TRANSCRIPT
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
),( oirf ),,,( ooii xxS
BSSRDF
opaq
uetranslucent
BSSRDF model
)()()(),,,( iiodoooii FxxRFxxS
function of distance
• introduced by Jensen et al. (SIGGRAPH’01)• multiple scattering• materials with high albedo: marble, milk, wax, skin,…
surface
d dAirradianceRfresnelshading
BSSRDF model
)()()(),,,( iiodoooii FxxRFxxS
function of distance
• introduced by Jensen et al. (SIGGRAPH’01)• multiple scattering• materials with high albedo: marble, milk, wax, skin,…
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
Only local response
Global 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
surface
d dAirradianceR
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:
)'()'(
)(i
i id
id pEJrR
rR
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 samplingUniformimportance
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
Complex lighting
Demo video
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