CS 5620/6620 - Fall 2025 - Rendering with Ray Tracing

Project 12 - Photon Mapping

<< Back

Sam Hill

Wed, Nov 19, 2025 @ 11:03 pm

Final render for this assignment probably. Transmission PDF is just wrong -- I removed the h%n^alpha+1 term and replaced it with 1/8 arbitrary and that made it not bubbly. But thats just a made up number. 13:09 render with 2^20 photons, 5 bounces, 4 monte carlo samples, and 8-128 spp.

Wed, Nov 19, 2025 @ 4:54 pm

Fixed specular PDF, and tried to fix transmission PDF as well, but for some reason my caustic is all bubbly. 1:10 with 2^16 photons used for monte carlo.

Mon, Nov 17, 2025 @ 3:55 pm

Applying caustic map, but without any specular photons--I literally just stop tracing a photon if it ever bounces specularly. Caustic is naturally too bright. But its looking even closer to the example now so thats exciting.

Mon, Nov 17, 2025 @ 12:17 am

Same as before, but Im also making sure to normalize photon energy so that the same total amount of light energy stays in the scene even if light is absorbed for individual photons. Looks quite close to the example now. Im only missing the caustics maps. 8:47 for this one.

Sun, Nov 16, 2025 @ 10:28 pm

Same as below except that Im only adding from monte carlo bounces from the photon map, not from the photon map itself. But now the caustic has vanished. Ill try adding from my caustics map but I dont know if thats correct either. 6:59.

Sun, Nov 16, 2025 @ 10:18 pm

Added monte carlo global illumination, which just reads from photon map. Render time is 8:24 with 4 monte carlo bounces. It still looks a bit splotchy and the shadows are too dark so I dont know if Im doing it right.

Sun, Nov 16, 2025 @ 9:00 pm

Redid the render for direct+indirect illumination because I had made those changes

Sun, Nov 16, 2025 @ 8:57 pm

Fixed indirect illumination again again, now Im exclusively adding diffuse lobe photons to the photon map. That really helped the refraction ball being so bright.

Sun, Nov 16, 2025 @ 8:23 pm

Corrected version of the last one just indirect illumination, I now apply both info.mult AND info.prob to the color for successive photon bounces. Refractive sphere is still too light because I dont know what to do about absorption for that.

Sun, Nov 16, 2025 @ 8:10 pm

Using photon maps for indirect illumination only. Same settings as below, 59s.

Sun, Nov 16, 2025 @ 8:02 pm

Fixed color scaling issue, I simply wasnt actually multiplying by light intensity despite having a variable for it right there in my photon generation code. Here is 2^24 photons used for direct and indirect lighting. 50s, 5 bounces, 4-64 samples, 8-32 shadow samples.

Sun, Nov 16, 2025 @ 7:29 pm

Photon mapping used for all illumination. 44s render, about 40s of which was just building the photon map. I have 2^24 photons, or about 16M. 5 bounces, 4-32 samples. I am still arbitrarily multiplying irradiance because I cant figure out why its so low. Ill make a Piazza post.

Sun, Nov 16, 2025 @ 6:50 pm

Fixed probabilities, so this is rendering all direct/indirect lighting with just the photons map. 2^24 photons. Im still multiplying irradiance by 256 though, it might be an error with conversion to/from color24? But it still looks a little too dark so who knows. At least it means Im probably off by some constant value.

Sun, Nov 16, 2025 @ 5:42 pm

Result with 2^17 photons --segfaulting if i add any more for some reason-- and multiplying irradiance by 1000 arbitrarily. I dont know why irradiance is so incredibly dark and I have to do that multiplication.

Sun, Nov 16, 2025 @ 4:28 pm

Sample count image for bounceless photon map. Cant figure out the actual colors yet so the main render is super dark, but I thought this looked neat.