760 likes | 785 Views
CPSC 641: Photon Mapping. Jinxiang Chai. Review: Ray Tracing. Start with a camera, light(s), and geometry in scene Send rays from camera into scene Through pixels on image plane When intersection occurs Solve for Phong reflection model at p Shadow Rays Transmission Rays Reflection Rays
E N D
CPSC 641: Photon Mapping Jinxiang Chai
Review: Ray Tracing • Start with a camera, light(s), and geometry in scene • Send rays from camera into scene • Through pixels on image plane • When intersection occurs • Solve for Phong reflection model at p • Shadow Rays • Transmission Rays • Reflection Rays • Recurse
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Ray Tracing • Start with a camera, light(s), and geometry in scene • Send rays from camera into scene • Through pixels on image plane • When intersection occurs • Solve for Phong reflection model at p • Shadow Rays • Transmission Rays • Reflection Rays • Recurse
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Ray Tracing • Start with a camera, light(s), and geometry in scene • Send rays from camera into scene • Through pixels on image plane • When intersection occurs • Solve for Phong reflection model at p • Shadow Rays • Transmission Rays • Reflection Rays • Recurse
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Ray Tracing • Start with a camera, light(s), and geometry in scene • Send rays from camera into scene • Through pixels on image plane • When intersection occurs • Solve for Phong reflection model at p • Shadow Rays • Transmission Rays • Reflection Rays • Recurse
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Recursive Ray Tracing 3 L1 L2 4 1 2
Review: Ray Tracing • A “Ray Tree” describes the increase in the number of rays sent each recursion • When do you stop? • When a ray hits nothing • Return background color • When a ray hits a non-transmitting and non-reflecting object • At some maximum depth • Return background color
Outline • Rendering equation • Photon map
Ray tracing and photon mapping What are differences between two rendered pictures?
Ray tracing and photon mapping caustics Color bleeding What are differences between two rendered pictures?
Global Illumination • Various Rendering techniques solve some portion of the rendering equation • If a technique approximates the integral, it is part of the family of “Global Illumination”
Global Illumination • Ray Tracing • Radiosity • Photon Mapping
Radiosity • Solves geometry term in form factor • Approximates integral completely for diffuse-diffuse • No reflection or transmission
Ray Tracing • Works well for reflection and refraction • solves geometry eq. through ray intersection tests • solves emission properly • only solves integral for reflection and refraction to maxDepth • Diffuse reflectance ignored
Photon mapping Two difficulties: - Q: how to compute the incoming radiance Li? - Q: how to efficiently evaluate the integral?
Photon mapping Two difficulties: - Q: how to compute the incoming radiance Li? A: Compute Li based on precomputed photon map - Q: how to efficiently evaluate the integral? A: Compute the integral based on monte carlo ray tracing
Photon mapping • Is often used to simulate the interaction of light with a variety transparent substances (caustics) - glass - water - Diffuse inter-reflections between illuminated objects - Effects of particulate matter, e.g. smoke
Photon mapping Phase I: shoot and store photons - photons are shot from the light into the scene - photons are allowed to interact with objects in the environment - where photons fall are stored in special data structure called a “photon map” - 10000s of photons not billions (Statistical approximation based on density)
Photon mapping Phase I: shoot and store photons - photons are shot from the light into the scene - photons are allowed to interact with objects in the environment - where photons fall are stored in special data structure called a “photon map” - 10000s of photons not billions (Statistical approximation based on density)
Shooting photons Point light source directional light square light general light
Shooting photons Point light source directional light square light general light The power of light The number of photons The power of an emitted photon
Pseudocode for Emission of Photons from Point Light Source • Basic idea: • Radiant intensity as a probability function. • Generate photons by sampling the probability function.
Photon mapping Phase I: shoot and store photons - photons are shot from the light into the scene - photons are allowed to interact with objects in the environment - where photons fall are stored in special data structure called a “photon map” - 10000s of photons not billions (Statistical approximation based on density)
Photon tracing • Photons are only stored when it hits diffuse surface • Specular surface does not store any photons.
Photon map What information does each photon store?
Photon map The photon: Placed in K-D tree for efficient access
Three photon maps Caustic photon map - interact with at least one specular surface Global photon map - interact with diffuse surfaces only Volume photon map - indirect illumination of participating medium
Global photon map • Basic idea: - Launch photons from the light sources in all directions - Store a photon (position, power and direction) in each intersection of the photon with the scene. - Compute the kind of interaction with the surface by using the Russian roulette.
Global photon map The types of interactions are: - Diffusion: the photon is reflected in a random direction (projected hemisphere) or taking into account a BRDF. - Reflection: Perfect reflection of the photon. - Refraction: The photon is refracted using Snell's law. - Absorption: We don't launch that photon again. The Russian roulette method decides which interaction to consider in function of the material.
Caustics photon map • The global photon map has very weak caustics effects. We need to construct an additional map only for caustics. - Launch the rays only over the objects that can generate caustics. - Store the photons when they hit a diffuse surface only if previously it hit a reflective or refractive surface.
Caustics and global photon map The global photon map The caustics photon map
Photon Mapping Pass 2: Gather illumination - use ray tracing - direct illumination determined by ray tracing - indirect illumination determined by stochastically sampling photon map (gather photon within volume in the required direction)
Rendering using photon map Two main issues: - How to compute incoming radiance Li? - How to evaluate the integral efficiently?
Basic idea: radiance estimate How to evaluate reflected radiance based on the photon map?
Basic idea: radiance estimate Evaluate the radiance based on nearby photons