Presentation/Presenter Title Slide John Snyder Principal Researcher Microsoft Research FOGSHOP: Real-time Design and Rendering of Inhomogeneous, Single-Scattering Media
Collaborators paper will appear in Pacific Graphics 2007 • Kun Zhou, MSRA • Qiming Hou, Tsinghua Univ. (intern at MSRA) • Minmin Gong, MSRA • Baining Guo, MSRA • Heung-Yeung Shum, MSRA
Standard Slide without subtitle homogeneous fog no spatial variation layered fog using textures vertical variation only problems with immersed scene objects volume rendering ignores halos/shadows Previous Real-Time Techniques
Standard Slide without subtitle RBF model supports large environments scripted particle systems immersed viewer point lighting: media’s appearance and shadows environmental lighting: media’s appearance only surface reflectance due to immersion in media noise addition easy-to-use design system Fogshop Features
Standard Slide without subtitle Modeling Inhomogeneous Media with Gaussian RBFs optical density = sum of n 3D Gaussian blobs + constant: easy-to-control model compatible with particle systems analytic line integral viaerf(x) bi ci ai
Standard Slide without subtitle T(a,b) is optical depth between 3D points a and b: light from ab attenuated by exp(-T(a,b)) Attenuation by Inhomogeneous Fog integrate density along path ab
Computing Optical Depth via RBF Splatting single RBF splat multiple splats integrate optical depth draw bounding box for each RBF integrate analytically in pixel shader accumulate over n blobs using alpha blending
Standard Slide without subtitle airlight models lighted media’s direct appearance due to light scattering by fog particles includes self-shadowing and haloing effects Fog scatters, not just attenuates, light! fogshop (single scattering) simple blending
Standard Slide without subtitle light scatters once off fog particle at x path consists of two segments exponential attenuation along each segment accurate for thin media, plausible for denser Single-Scattering Model for Airlight
Standard Slide without subtitle Single-Scattering Integral La : airlight along view ray x : scattering location, (x) : optical density at x (x) : scattering angle k() : phase function [constant] I0: light intensity T(v,x), T(s,x) : optical depths
Brute Force Numerical Integration • need manysamples xi along each view ray • two optical depth evals per sample, per ray: T(v,xi), T(s,xi) • too expensive for real-time!
… and compute Li with a single sample. • projected center is point of max density along view ray • assumes f (x) smoothwrt blob’s width • i integrated analytically • still need two optical depth integrations to evaluate
use red light path through for blobi[varies per ray] use blue light path through bi for other blobsj≠i[invariant] Computing Li : Separate Light Paths Reuse optical depth integrals over many view rays.
Computing the constant term L0 • use similar light path separation trick • apply analytic method of [Sun05] • see paper for details
Accuracy of Our Approximation ray traced fogshop
Approximation Problems not smooth small (looking at lights) T(x,s) discontinuous (light shafts) ray traced fogshop
Environmental Airlight L : environment lighting in SH basis Tr : optical depth along view ray r from v∞ = * L*PSF (after scatter) L (before scatter) PSF
Environmental Airlight: Results environment airlight point airlight
Standard Slide without subtitle surfaces immersed in medium incident radiance affected by scattering subtle yet noticeable effects: softened shading blurred highlight media’s shadow can get away with lots of approximation Surface Reflectance: Why?
Standard Slide without subtitle assume homogeneous medium of average density average varies at each pixel, creating inhomogeneous effects point light: average in single direction sp environment light: average all aroundp use SH lighting and PSF (point spread function) [Sun05] Surface Reflectance: How?
Standard Slide without subtitle Surface Reflectance: Results point light environment light
Standard Slide without subtitle break up RBF’s circular shape perturb view rays, indexed by be consistent when camera rotates add noise in world space Adding Noise with noise without noise
Standard Slide without subtitle preliminary steps render depth maps from camera & lights (immersed) surface rendering airlight rendering Rendering Summary
Standard Slide without subtitle compute T(s,p) for each point light s using RBF splatting to cube map compute average optical depth at object centers if using environmental lighting shade per-vertex render to scene target Surface Rendering
Standard Slide without subtitle compute T(v,bi), T(s,v), T(s,bi) plane sweep algorithm on CPU accumulate airlight and screen optical depth T(v,p) perturb view rays if noise enabled computed on GPU attenuate scene target and add airlight Airlight Rendering ( ) scene target airlight optical depth + = result
Standard Slide without subtitle brush/eraser copy/paste particle emitter airbrush real-time light and camera change Interactive Media Design
Standard Slide without subtitle scripted using a simple language parabolic path default Interactive Media Design: Particle Emitter
Standard Slide without subtitle particles bounce off scene surfaces collision detection using kd-tree ray tracer Interactive Media Design: Airbrush
Contributions • analytical model of single scattering for inhomohogeneous media • enables visually accurate, real-time rendering • easy-to-use tools for interactive media design
Limitations • inaccurate approximation near lights • light shafts ignored • low-frequency surface reflectance • no shadows for environmental lighting • use PRT for self-shadows
Future Work • light shafts • multiple scattering • mixed surface-surface and media-surface shadowing