I have this crazy idea.

What if you made a real-time 3D render that for each frame, progressed some number of light bouncing. In effect this is a ray tracer but it does the ray tracing in steps. First step is direct lightning, second step is 1 degree of indirect lightning and third is 2 degrees of indirect lightning.

For each step, you would accumulate the information in a new frame buffer. Obviously there are limitations to this because you are only considering what's on screen but is the idea sound? Can it be done? What does it look like?

I'm eager to try it out because it appears simple but I'm wondering if something like this doesn't already exist.

Basically a ray tracer implemented with real-time 3D rasterization that converges over time (with sub steps, more than 1 pass per frame) this convergence can be adjusted.

  • \$\begingroup\$ A number of realtime global illumination systems use a version of this — for example, CryTek's Light Propagation Volumes. They still use traditional rasterization for the direct light and for rendering the frame to the player, then incrementally model light bouncing using a grid approximation. \$\endgroup\$ – DMGregory Dec 20 '16 at 15:25
  • \$\begingroup\$ LPV is on my radar but I haven't understood all the math. I will continue to dig deeper. LPV appears very promising. \$\endgroup\$ – John Leidegren Dec 22 '16 at 12:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.