- Figured out I can dynamically load textures using a built-in class from Three.js (could've saved me >6 hours if I had figured this out earlier.)
- Loaded all photon values (position, color, and incident angles) through textures and for look up on shader. Turns out precision loss isn't a big problem.
- Played with photon gathering equation. Increased radius, and dimmed the light contribution.
And here's an experiment on mirrored surface. 100 photons only (performance dies at 200).