Camera-Aware Photon MappingFinal Project of CS6620
Byong Wu “Bernard” ChongApr. 28, 2008
08 Arch. Reading Club2
Why did I consider this?
UoU SoC
http://www.youtube.com/watch?v=lOWMlzOHapQ : Photon mapping with static scene
http://blenderartists.org/forum/showthread?t=54129 : Yafray patch on reusing a photon map
As you can see, a photon map is unaware of camera setting.
08 Arch. Reading Club3
What is Photon Mapping? – Step 1
UoU SoC
A two step process: First the photons are distributed
http://www2.imm.dtu.dk/visiondag/VD03/grafisk/PhotonMaps.ppt
08 Arch. Reading Club4
What is Photon Mapping? – Step 2
UoU SoC http://www2.imm.dtu.dk/visiondag/VD03/grafisk/PhotonMaps.ppt
Then the scene is rendered, and the density is found.
08 Arch. Reading Club5
My Idea – Camera Photons
UoU SoC
Shoot ”camera-photons” from a camera. Just like ray tracing.
Make a (coarse) camera-photon map If a light photon hits near a camera-photon, it will be
recorded, otherwise it will be ignored. Render with only recorded photons in the map. Therefore, it is 3-step process.
08 Arch. Reading Club6
Step 1 - Camera Photon Map Creation
UoU SoC
Shoot coarse set of camera-photons. And make a map.
It would be like throwing sticky glue globs into the scene.
This is non-transparent for now on
08 Arch. Reading Club7
Step 2 – Modified Photon Shoot
UoU SoC
Shoot light photons, if there isn’t a camera photon nearby, it will be discarded. Only the photons sticked to
the camera-photon globs would be recorded.
Red hit photon will not be stored into the photon map.
Blue hit photon will be stored into the photon map.
08 Arch. Reading Club8
Step 3 – Normal Photon Map Rendering
UoU SoC
This will be the same step as normal photon mapping.If the globs are covered enough, there won’t be many missing photons.
08 Arch. Reading Club9
How did it perform? (extreme case)
UoU SoC
In the extreme case (below) it performed 69% better.
Normal photon mapping used 1.8M photons
Camera-aware photon mapping used 180K photons.
This is the original
08 Arch. Reading Club10
How did it perform? (normal case)
UoU SoC
In the normal case (below) it performed 1.4% worse.
Normal photon mapping used 1.21M photons
Camera-aware photon mapping. This took 4m:39s. Used 1.14M photons
Since we are using very simple camera-photon mapping, this area has lower resolution of camera-photons resulting color attenuation.
08 Arch. Reading Club11
Evaluation Environment
UoU SoC
Since it is very hard to implement a photon mapping, I asked Steve’s permission for using a open ray tracer for the final project. (I was not interested on reproducing already implemented ideas)
Modeler: Blender 2.45 Ray Tracer: Yafray 0.0.9 My System: AMD 1.09GHz 1GB RAM, WinXP Pro. The implementation source code is on
http://www.cs.utah.edu/~bchong/Graphics/yafray0.0.9-camera-aware.zip
08 Arch. Reading Club12
Future Work I – Make it two step again.
UoU SoC
If the camera photons are finely shot and if it remembers which pixel it belongs to, we could just use camera-photon instead of light-based photon.
If a light-based photon hits a camera photon, it will add its color to the camera-photon.
After step 2 of photon shoot, the color added camera photons will be shrunken down to a image in O(N) complexity.
If this is possible, even adding 2G photons would not increase required memory resource.
08 Arch. Reading Club13
Future Work II – Shoot camera photons wisely.
UoU SoC
Unlike light photons, camera photons could be shot and placed in manipulated manner. (If we direct a light photon’s direction, the picture might have a biased look.)
Put more camera-photons in the area where we could miss necessary light-photons.
On this work, I had to find the best camera-photon radius and the resolution. The software should find the optimal coefficients.
08 Arch. Reading Club14
Future Work III – Increase Camera Pho-ton Search Speed
UoU SoC
If the number of camera photons increases, just checking if there is a camera photon nearby is very expensive.
This would be O(search_latency * light photon bounces)
This is why we should also consider Future Work I, on work I, we don’t have to check if there is a light photon on some 3D point.
08 Arch. Reading Club15
End of the Presentation
Questions?
UoU SoC