Sign in to follow this  
cignox1

The best GI method?

Recommended Posts

Hi, I wonder what are the best (both results and speed) methods to produce global illumination rendering. I don't want a war, just some information, because I heard about radiosity, foreward ray-tracing, photon-mapping, ... but don't know what are the differences (even while I know a little on how they work). Thank you.

Share this post


Link to post
Share on other sites
stochastic relaxation patch based radiosity:
ok for diffuse surfaces,
you need explicit geometry.

Monte carlo ray tracing:
you will need it anyway, gives good results in a vey long time.
small light sources are unlikely to produce good caustics.
Can be optimized using radiance caches (like photon mapping, histogram storage, etc...).

Bidirectional path tracing (like a two way Monte carlo tracer, in which you connect paths)
solves many problems, but rendering times will stay long.

Metropolis light transport.
works in the many dimensional space of light-> camera paths.
When it finds a valid path, it mutates it to find neighboring paths that work too.
It is a great way to solve difficult cases (ie a small hole in the ceiling yields a lot of light).
It is complicated to implement esp. because of the probabilities that have to be managed.

Jensen's implementation of photon mapping + ray tracing is a good start.
Check out the "advanced global illumination" book too.

Share this post


Link to post
Share on other sites
Quote:
Original post by cignox1
Hi, I wonder what are the best (both results and speed) methods to produce global illumination rendering. I don't want a war, just some information, because I heard about radiosity, foreward ray-tracing, photon-mapping, ... but don't know what are the differences (even while I know a little on how they work).
Thank you.


Radiosity: My personal opinion is that its only good at generating lightmaps. It only really works well with polygon based scenes too... Because it divides surfaces in smaller flat areas. Radiosity is based on rasterization and so is relatively fast, but you're going to need to combine it with other techniques (like raytracing) to obtain interesting results.

Forward raytracing: Its just too slow. You can't possibly do GI on complex scenes with that, at least not with the computers of today. It has its uses mainly for scientific applications, where you want to know exactly how light will react with something (a lens for example), and derive a large data set.

Photon mapping: Photon mapping is still relatively new. The only *real* source of information about it is the book by Henrik Van Jensen (the creator of photon mapping). Photon mapping is probably the best compromise you can find at this time between quality and speed. You can perform GI on some medium complexity scenes in less than an hour and obtain good results (which is pretty quick).

I would personally go with photon mapping, but if you want to start with something simpler, I advise programming a "monte carlo raytracer", aka path tracer. I programmed one that takes alot of random paths and comes up with some pretty accurate GI solutions. The only inconvenient of course is that its slow and produces noise. You can still get interesting renders within an hour though, provided that you render in 640x480 or so.

Here is a link to the pahe of my path tracer: RenderMax, for some basic info and renders.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this