270 likes | 409 Views
Photon Mapping. Not to scale. Photon Mapping. How did I use it 10 years ago? Why might you want to use it tomorrow?. Ever increasing complexity (For an approximation!). Warning: Contains Math. Photon map creation.
E N D
Photon Mapping Not to scale
Photon Mapping How did I use it 10 years ago? Why might you want to use it tomorrow?
Ever increasing complexity(For an approximation!) Warning: Contains Math
Photon map creation • Emit photon from light sources in turn based on relative energy output, until ‘n’ emitted. • Photons all emit at same power but power and color may vary after reflectance. • Stored AND / OR reflected at each hit surface. • Adjust photon energy based on number of actual emitted photons. • Heavy use of random probability based on surface material (drand48)
Sampling photons • Incorrect density estimates = dark corners & edges • Problem: Photon map does not store geometry • Impractical… for direct visualization
Kd-tree From efficient storage to critical tool. Can be dynamized for generic use
Why do indirect lights work? • Photon Map stores energy to emit ‘The Final Bounce’ • Ray tracers use photon map to accelerate ‘Final Gathering’ • Light Energy is conserved
Indirect Lights Sampled from top levels of kd-tree
Spatial structuresfor visibility testing • Hybrid BSP • Top levels are octree • Lower levels arbitrary planes • Stored as binary tree • Not balanced • Polys in leaves as edges
Packing texturesGood enough • Many ways to generate texture atlas • Can be part of seam reduction • I used simple, largest first box packing with empty space reclamation
There seems to be a problem • The map makers problem… how to map a round surface to a flat plane, and hide the evidence. • Biliner filtering works against you. • There is no perfect solution.
(Feature) Size Matters • Texel size vs Geometry wall thickness means choosing sample points wisely. • Shift sample points within texel. • Use multiple sample point locations.
Direct Lights can look coarse • Not enough of them to look like indirect light
Direct lights can look soft • When considered a surface instead of a point.
Why can’t I see the stars during the day time? • Exposure control to the rescue… map infinite floating point light range to 8 bits. • Pics show 0.5, 1.0, 2.0 K values for equation
Area lights • Pretend it’s Radiosity • Light polys sampled as jittered grid, texelreceivers • How much energy from one area to another
Real-time? • Deferred lighting / shading for many direct light sources. • May not need shadows / occlusion per light. • Photon map creation (sample scene energy) and prepare virtual lights takes ‘seconds’. • As background process, get results with latency. • Energy changes when lights OR geometry move. • Represent geometry with LOD mesh or voxels.
Questions? From self published paper: Diffuse Global Illumination via Direct and Virtual Indirect Light Sources (2003) Download from citeseeror gmscript.com http://www.gmscript.com/gamemonkey/downloads/misc/LightingTechnique1.pdf • Some images used without permission… Thanks Google. Thank you for staying awake and not texting.