10
\$\begingroup\$

What techniques should someone look at when getting into real time global illumination (for dynamic lighting scenarios)?

It's hard to get a real grip on the different mentioned techniques without knowing anything about the subject. If I wanted to incorporate GI into my graphics engine, where should I start reading as a baseline? Which algorithms are implementable in a reasonable timeframe by someone new (i.e. not a highly specialized algorithm that gains minor performance for months of work) and which are not completely outdated by now (i.e. straight up replaced by something simply prettier and faster)?

Photon mapping seems to come up a lot, and I've read about things like voxel cone tracing and more specific algorithms, e.g. this technique used in CryEngine 3. However, knowing next to nothing about the field it's hard to decide where to start.

What general techniques are worth looking into?

\$\endgroup\$

closed as off-topic by MichaelHouse Aug 18 '13 at 22:54

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started" or "what should I learn next" cannot reasonably be answered with anything other than opinion polling and therefore are off topic for the site. For more information on how to ask a better question, see the help center" – MichaelHouse
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Are you specifically looking for dynamic global illumination? There are many well understood and documented algorithms for static (aka precomputed) global illumination, but I get the feeling you are not looking for those. \$\endgroup\$ – Chewy Gumball Aug 18 '13 at 20:56
  • 1
    \$\begingroup\$ While an interesting topic, this question is essentially a "What to learn next", and doesn't really have a correct answer. Instead, I only see it generating a list of topics (which I believe is exactly what you're after). It's certainly a cool topic, but it's a discussion topic, and likely not a fit for the site. \$\endgroup\$ – MichaelHouse Aug 18 '13 at 22:32
  • 1
    \$\begingroup\$ A question about what the current state of the art is would be highly localized in time. \$\endgroup\$ – Josh Aug 19 '13 at 0:40
  • 1
    \$\begingroup\$ 9 upvotes and closed? Are you serious? @Byte56 \$\endgroup\$ – ashes999 Aug 19 '13 at 2:53
  • 1
    \$\begingroup\$ @JoshPetrie Perhaps when worded as state of the art, but this question has the potential to have very useful answers and the reason for close seems to be rather superficial. \$\endgroup\$ – Chewy Gumball Aug 19 '13 at 4:58
6
\$\begingroup\$

Why don't you look into my MSc thesis?

The result apparently blew too hard for SIGGRAPH to accept (they rejected my paper) and I didn't submit to any other conferences. But it still presents a good introduction to GI, written in typical bobobobo understandability (actually some sections go into a bit too much depth, but hey).

You'll want to look at section 2.4, which very quickly and with references runs through some of the newer real-time gi algorithms including

  • real time ray tracing
  • real time radiosity (enlighten/bf3)
  • deferred shading and screen space methods (ssdo, ssao)
  • precomputed radiance transfer and spherical harmonics

That's all I got in my survey. Disclaimer that I may have missed something.

Anyway, you really have no hope of implementing all of these in 3 months. I'd say pick one and work with it. Real-time ray tracing is by far the most exciting to me, because it's a true gi method. Unlike screen space methods, rtrt isn't a "hack" -- it doesn't suffer from weird effects that ssdo does:

enter image description here

\$\endgroup\$
  • \$\begingroup\$ >Anyway, you really have no hope of implementing all of these in 3 months. I'd say pick one and work with it.< That's disappointing. I'm not sure how I would approach a single algorithm in a manner that's worth a bachelors thesis. I think just implementing it to see how it looks isn't nearly enough. And I don't think I'm capable of coming up with my own improvements on a particular algorithm (just don't know anything about the field). Well at least, I'd like to not risk having to spend 6 more months studying on it. \$\endgroup\$ – TravisG Aug 18 '13 at 22:53
  • \$\begingroup\$ Well, speak with your supervisor. Have you written a raytracer before? At the core of any of these is usually a raytracer. Photon mapping "parks" photons in the scene (by essentially casting rays from the light source into the scene), and after that the scene is raytraced. I honestly think RTRT is the best candidate, because getting a basic raytracer up isn't too difficult, and you can add/cut features as time permits. With some of the more advanced algorithms (such as the one you linked), they are very complicated and have a high barrier to entry. \$\endgroup\$ – bobobobo Aug 18 '13 at 23:05
  • \$\begingroup\$ This made-by-evan example is a good example of rtrt running in your browser. \$\endgroup\$ – bobobobo Aug 18 '13 at 23:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.