Topics • Kajiya’s paper • Showed that existing rendering methods are approximations of rendering equation. • Introduced path tracing. • More recent work – Lafortune, Veach.
Kajiya’s Rendering Equation • Expressed as point-to-point transfer • Integral is over S, union of all surfaces
Rendering Equation Terms • is unoccluded two-point transport intensity • Energy per unit time per unit area of source per unit area of target
Rendering Equation Terms • is geometry term • 0 if x not visible from x’, 1/r2if visible.
Rendering Equation Terms • is unoccluded emittance term
Rendering Equation Terms • is unoccluded three-point transport reflectance (scattering term) • Intensity scattered to x by x’ originating from x”
Why express as point-to-point? • Wants to set up for a path tracing solution • Point-to-point transfer of energy
Relationship to OtherRendering Methods • Compared rendering eqn. to conventional polygon rendering, ray tracing and distributed ray tracing. • Let scattering,
Relationship to “Utah Approx.” • Geometry term, g, only computed to eye. • g is ambient term. • Scattering operator, M, only operates on point sources (0), ignores visibility to light (no shadows). • M is now only sum over lights, not integration • Later extensions for shadows and area lights
Relationship to Ray Tracing • M0 now one reflection, one refraction, and cosine for diffuse term • Computes visibility, g, of point lights (generates shadow) • M still small sum
Relationship to Distributed Ray Tracing • Similar equation to Whitted’s • Now need to evaluate M as integral • M now distribution around reflection, refraction, and shadow ray • Ambient term still “elusive”
Relationship to Radiosity • Solves energy balance, but only for diffuse. • Derives equations for radiosity from the one presented. • Points out that solving visibility is expensive and that you may not need radiosity for all surfaces (on other hand, you might).
Method • At each hit, • One ray cast based on specular, diffuse, and transmission coefficients • One random ray per light • Constant number of rays per pixel (40)
Markov Chains for Solution p = 0.11 p = 0.08 p = 1 p = 0.02 Absorbing state
Algorithm • Choose pt. x’ visible from eye • Add in radiated intensity • For length of Markov path • Select pt. x” and compute g(x’, x”) • Calculate reflectance (x, x’, x”), multiply by (x’, x”) • Add contribution to pixel
Sampling • Most important factor in Monte Carlo • Need to avoid bias • But also need to make most out of few rays • Otherwise, noisy images • Kajiya discusses several ways. • Better to look in more modern reference • Glassner • Recent dissertations
Path Tracing • Postulates that even for ray tracing, following one path (probabilistically) is better. • Why? Most contribution from first ray. • Need to be careful about proportion of reflection, refraction, and shadow rays.
Results 256 x 256 image Ray Traced (no ambient) Path Traced Light scattered by sphere 401 minutes 533 minutes
Results Objects are gray, except for spheres and base. Color bleeding Caustics
Current Methods • Bi-directional path tracing (Lafortune and Veach) • Metropolis (Veach)
Pure Path Tracing Best for big luminaires. If lights small, few hits and large variance.
With Shadow Ray to Lights Small lights OK. Best for specular surfaces.
Light Tracing Small lights OK. Best for caustics.
Generating Samples • Generated as groups • Prefix from light joined with suffix from (to) eye (if edge is not obstructed) • Russian roulette to cut off path • Contribution must be multiplied by probability of generating path
Metropolis • Method for importance sampling • A path is a sequence of points from a light to the eye. • Let be the image contribution function, a measure of contribution over path • is flux contributed by paths D • Strategy: generate sequence of paths with probability proportional to ƒ
Mutations • New path Xi+1 mutated from Xi • Probability of rejecting each mutation keeps paths distributed according to contribution • Discard start-up to reduce bias • Can be run from a set of seed paths • Run some bi-directional paths to find good seeds
Implementation • Path selection important • minimize rejected paths, but not too correlated • finds sub-paths and replace • or perturb vertices of path (for caustics, etc) • Mutation of “lens” path, (L|D)DS*E, to cover image pixels • Adds direct lighting • rejects path if found by Metropolis
Results Light for this example comes only through crack in doorway
Results There are specific mutations to capture caustics.
Advantages • Works well for difficult lighting • because it “stays” in important area • Like bi-directional path tracing there’s just a little work to get a new path
References • Kajiya, Jim, “The Rendering Equation”, SIGGRAPH ‘86. • Lafortune papers and thesis • Veach papers and thesis • Jensen papers • Shirley draft of MC book on his web page • Kalos & Whitlock, Monte Carlo Methods, 1986.