Spherical harmonics for GI and other lighting thoughts...

Started by
3 comments, last by griffin2000 17 years, 11 months ago
So, I have been working on a demo recently, and I have been thinking a lot on how best to light it. The environment i'm going for is an open outdoors enfironment. I have a quadtree based terrain that I want to fill with lots of trees, grass, and other thingies. I want the demo to be able to do day/night transitions, so I want most of my lighting to be dynamic. So, here's my theory on light management/rendering techniques. Step 1: Identify the most important lights on the scene, namely, the sun, and perhaps one or two other lights close to the camera. These lights will be important enough to cast shadows and what not. Step 2: Identify the most important lights to the individual objects. So, if a group of trees has a campfire near it, those trees will put that light in their list. Step 3: Use spherical harmonics for global illumination of the rest of the lights contributing to the scene. Shader x3 had an article on sperical harmonics to reduce the number of calculations needed to render a scene. While the tecnique isn't particularly acurate, it seems like it would give a nice GI appearance to the scene. So has anyone else tried the SH approach that I'm referring to, and did it work well for you? Also, I'm wondering if I'm missing anything. I'd like to do everything HDR, but should I attempt to bring in any other fun technologies like realtime ambient occlusion, or some kind of dynamic specular cube mapping. Any other thoughts in general on how to light a scene like this? Thanks much for the input.
Write more poetry.http://www.Me-Zine.org
Advertisement
what sort of frame rate are you hoping for?
Heh, good question. I'm doing all of my dev on a 6800GT, and I would like to stay at or aobve 60. I figure F.E.A.R. looks good on my machine, and if it stays above 60 most of the time, my demo should too. I wouldn't mind dipping a bit if the quality trade was worth it. Here's how I see it, I'm pretty much targeting "next-gen" type hardware because I'm either going to use this as a demo to prospective employers, or, if we ever did release this as a product, it would take a while before we finish anyway.
Write more poetry.http://www.Me-Zine.org
I'm looking into SH now.... It looks cools but the big gotcha is it only really works well (and efficently) with non-deformable object in static environments (even rotating rather than just translating is complicated). It rapidly gets very complex if you have deformable (i.e. skinned) objects, or if your environment changes. There are ways round these problems (The directX SDK comes with an example that demonstrates locally deformable PRT) but they are no where near as efficent.

I'm looking into SH now.... It looks cools but the big gotcha is it only really works well (and efficently) with non-deformable object in static environments (even rotating rather than just translating is complicated). It rapidly gets very complex if you have deformable (i.e. skinned) objects, or if your environment changes. There are ways round these problems (The directX SDK comes with an example that demonstrates locally deformable PRT) but they are no where near as efficent.

This topic is closed to new replies.

Advertisement