Realtime Global Illumination - call for demos

Dee.cz

Newcomer
Hello,

I'll have Realtime Global Illumination talk at GDS2007 this saturday and I'm gathering demos to show there.
I set my rules to show only executables, no videos.
I wonder, do you know some realtime global illumination demos not listed here?

2000
Heaven7 (just one for tens of raytraced intros)
Exceed
http://www.acm.org/tog/resources/RTNews/demos/overview.htm
(realtime raytracing - 1-2 specular bounces)

2003
Hardware Global Illumination on the Radeon 9800
Mangesh Nijasure
Sumanta Pattanaik
Vineet Goel
http://graphics.cs.ucf.edu/GPUassistedGI/index.php
(voxels)

2004
Real-Time Radiosity demo
Nik Chapman
http://homepages.paradise.net.nz/nickamy/realtimerad/realtimerad.html
(instant radiosity)

2006
RealTime Radiosity on GPU
Lionel Berenguier
http://berengui.club.fr/rtrad.html
(radiance projection, direct+2 bounces)

2007
Deferred Rendered Radiosity from First Person Perspective
51mon [gamedev.net]
http://www.gamedev.net/community/forums/topic.asp?topic_id=438221
(instant radiosity)

2007
Lightsprint Demo
Lightsprint
http://lightsprint.com
(realtime radiosity)

Btw, for your amusement, I have realtime global illumination running in Quake3 levels for some time (demo at http://lightsprint.com), so I opened student project to port it to official Quake3 game :)

Stepan
 
Last edited by a moderator:
I don't have anything to add, but I'll contact Nicholas Chapman to see if he's got anything else he just never released - he's pretty busy with Indigo, but I wouldn't know. :)
 
I'll show only executable demos, marketing materials usually lie. Geomerics don't have a demo (guess why).
To my surprise, I haven't found any recent realtime raytracing demo, despite all Intel talks.
 
I've run a few of these demos and I'm a bit skeptical about all this realtime radiosity. No source code to see whats going on underneath and the results don't really look all that impressive. It doesn't seem to have the quality of radiosity that is seen in lightmaps such as quake 2.
 
I found few more demos.

After spending time with google, capturing screenshots etc, I decided to create page with list of all demos. Its here, not yet complete but growing:

http://www.realtimeradiosity.com/demos/

I've run a few of these demos and I'm a bit skeptical about all this realtime radiosity. No source code to see whats going on underneath and the results don't really look all that impressive. It doesn't seem to have the quality of radiosity that is seen in lightmaps such as quake 2.

These techniques are not for games with static lights, they are for games with dynamic lights. Look e.g. at CryEngine2, next big engine with the most advanced lighting...how is indirect illumination handled? It's constant ambient, so areas in shadow are flat, all equally dark. Constant ambient is acceptable only because game designers design games to prevent scenarios where it fails horribly. But new techniques - like those in demos - will give designers new level freedom and improve visuals at the same time. Price is more calculations.
 
Well, regarding constant ambient, I have found a super cheap alternative that looks worlds better, at least in the outdoors:

ambient = lerp(brownish gray, somewhat brighter bluish gray, normal.y*0.5+0.5);

You could view this as either a very limited single component first order spherical harmonic of some generic outdoors scene, or simply a quick hack to rougly approximate things :)

Of course the two colors can be changed to reflect the current sky color and approximate ground color, for more realism.
 
Well, regarding constant ambient, I have found a super cheap alternative that looks worlds better, at least in the outdoors:

ambient = lerp(brownish gray, somewhat brighter bluish gray, normal.y*0.5+0.5);

We used the same in Rallisport Challenge 2 and Battlefield 2 for the sky lighting :) And are actually, at the moment at least, using it for Battlefield: Bad Company in Frostbite but with a tweakable up vector instead of the more efficient (0,1,0) you get with a hard-coded y-component.

Usually we just tilt the sky up direction a little bit away from the sun direction to create a some more detail in the shadowed areas and to get different lighting on the shadowed sides of buildings. Can look really flat and uninteresting otherwise due to constant sky/ambient lighting term you get with 90 degree walls and using normal.y.
 
Well, regarding constant ambient, I have found a super cheap alternative that looks worlds better, at least in the outdoors:

ambient = lerp(brownish gray, somewhat brighter bluish gray, normal.y*0.5+0.5);

It's called hemi-sphere lighting IIRC, and can indeed be quite nice, and it's very cheap. :) If you want to be more advanced you could just look up in a low-res cubemap with the normal.
 
If you want to be more advanced you could just look up in a low-res cubemap with the normal.

I used this for some experiments a long while back (remember when pixel shaders were pretty crap? Right around 1.1? I used a vertex shader to evaluate object local lighting into a cube map (essentially a vertex for every texel of it) and coupling this with an ambient cubemap. Looked fairly nice.

I'd quite like to get this up and running again... Humus, would you mind me using a Mac-compatible version of your framework?
 
[maven];1009005 said:
Humus, would you mind me using a Mac-compatible version of your framework?

Nope, go ahead. I've uploaded the latest framework which has Mac support to my website.
 
Real-time global illumination tecniques

I'm a student working on a thesis about real-time global illumination. I'm looking for an efficient tecnique to implement this. Do you think Spherical Harmonic lighting implementation could be the right method? Does this method manage only static object? in this case, how could I manage moving objects such as clouds, or cars? Should I add a less sophisticated shadowing system for those things, such as shadow maps?

Do you know something (implemented) that could handle both situations? I've found "Reflective shadow maps", or a newer "real-time radiosity", but no implementations are downloadable.

Thanks in advance for your answer,
regards,
Emanuele Russo
 
The Global Illumination sample in the new Radeon SDK may be of interest.

Thanks, I wasn't able to run it yet but it looks complete source code is included, pretty cool!

Docs don't say who wrote it, but technique seems related to older ATI 9700 global illumination demo by Mangesh Nijasure.
 
I wrote it. The technique is pretty much the same as Mangesh Nijasure's work, but implemented in DX10 as the GS can be used to reduce the amount of draw calls and state settings quite dramatically (which otherwise tends to shoot through the roof pretty quickly if you did the same in DX9).
 
Back
Top