710 likes | 730 Views
CSCE 641: Photon Mapping. Jinxiang Chai. Outline. Rendering equation Photon mapping. Ray Tracing and Photon Mapping. What are differences between the two rendered pictures?. Ray Tracing and Photon Mapping. caustics. color bleeding. What are differences between the two rendered pictures?.
E N D
CSCE 641: Photon Mapping Jinxiang Chai
Outline • Rendering equation • Photon mapping
Ray Tracing and Photon Mapping What are differences between the two rendered pictures?
Ray Tracing and Photon Mapping caustics color bleeding What are differences between the two rendered pictures?
The Rendering Equation Outgoing Emitted Reflected
The Rendering Equation Emitted light [known]
The Rendering Equation BRDF [known]
BRDF (bi-directional reflectance distribution function) How to model surface reflectance property? for a given incoming direction, the amount of light that is reflected in a certain outgoing direction
Dimensionality of the BRDF • This is 6-D function - x: 2D position - (θi,φi): incoming direction - (θr,φr): outgoing direction • Usually represented as 4-D - ignoring x - homogenous material property
The BSSRDF • Bidirectional Surface Scattering Reflectance-Distribution Function Translucency
The Rendering Equation [unknown] Emitted light [known] BRDF [known] Directional irradiance [unknown]
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 Techniques • Radiosity • Ray Tracing • 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
Global Illumination Techniques • Radiosity • Ray Tracing • Photon Mapping
Photon Mapping Two challenges: - Q1: how to compute the incoming radiance Li? - Q2: how to efficiently evaluate the integral?
Photon Mapping Two challenges: - Q1: how to compute the incoming radiance Li? A1: compute Li based on precomputed photon map - Q2: how to efficiently evaluate the integral? A2: 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 - etc.
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 [Forward] - 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 & Global Photon Map The global photon map The caustics photon map
Photon Mapping Phase 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
Basic idea: Radiance Estimate Evaluate the radiance based on nearby photons: Find N photons with the shortest distance to the intersection point