110 likes | 262 Views
Bidirectional Ray Tracing. CS 319 Advanced Topics in Computer Graphics John C. Hart. Bidirectional Ray Tracing. Arvo, SIGGRAPH 86 Course Notes LS*DS*E Cast rays from lights into scene Deposit energy on diffuse surfaces LS*D View independent Cast rays from eye into scene
E N D
Bidirectional Ray Tracing CS 319 Advanced Topics in Computer Graphics John C. Hart
Bidirectional Ray Tracing • Arvo, SIGGRAPH 86 Course Notes • LS*DS*E • Cast rays from lights into scene • Deposit energy on diffuse surfaces • LS*D • View independent • Cast rays from eye into scene • Collects energy from surfaces • DS*E • View dependent
Caching Irradiance • Ward et al. S88 • Multiple passes • Light pass • diffuse-diffuse passes • Eye pass • L(S*D)*S*E = L(S|D)*E • Caching irradiance in space • Octree (Ward, S88) • Multires textures (Heckbert, S90)
Indirect Irradiance • Measurement • Cast a “few hundred rays” • Ignore rays that reach lights • Indirect irradiance changes slowly • Shadows already ray traced • Need fewer irradiance samples • Irradiance gradient • Compute E andE = (E/x, E/y,E/z) • Slope for hermite interpolation • Symbolic (Ward et al., S88) • Numerical (Ward, ERW92) Henrik Wann Jensen
The Radiance System • Ward, SIGGRAPH 94 • Method • Radiosity determines irradiance • Irradiance cached in a 3-D octree • Path tracing accumulates irradiance • Irradiance interpolated from closest samples • Used for architecture under various lighting conditions • Indoor • Daylight • http://radsite.lbl.gov/radiance
Still Tough Cases • Caustics • How do you know which direction to cast eye rays to reach the interesting light? • Bleeding • How do you know which rays to reflect to reach the interesting parts of diffuse reflections?
Caching Radiance • Lafortune&Williams, Eurographics 95 • Avoid retracing the same ray of light • Light bidirectional • Example • Ray cast from light to wall, bounces from wall to floor • Ray cast from eye to floor notices prior wall-floor ray • Use radiance from wall-floor ray • Caching rays • 5-D octree (32-tree) • 3-D ray source, 2-D ray direction
Bidirectional Path Tracing • Lafortune & Willems, Compugraphics ’93, Veach & Guibas, EGRW 94 • Send paths from light source, record path vertices • Send paths from eye, record path vertices • Use shadow rays to connect every vertex of eye path with every vertex in light path • Creates abundance of paths from light to eye • Need weighted average of these path results
Path Weighting • Veach & Guibas, S95 • Two different paths of light reach eye through the same pixel • How much should each path be weighted?
Metropolis Light Transport • Based on Metropolis et al., Equation of State Calculations by Fast Compting Machines, J. Chemical Physics 21(6), 1953, pp. 1087-1092. • Adapted to bidirectional path tracing by Veach & Guibas, S97 • Start with a connected path of light from the light source to the eye • Perturb the path of light to find new paths