Global illumination vs Real-time

Started by
22 comments, last by momotte 16 years, 1 month ago
Quote:Original post by RedDrake
I had an idea some time before about GI and deferred shading.
Basically the idea is to query samples from shadowmap on each scene pixel using some montecarlo technique and calculate reflected light from shadowmap point by transforming that point in to gbuffer texcords and retrieving diffuse/specular properties. You can store normal in shadowmap and effectively cull low contributions. It only allows one step tracing and ignores the possibility of occlusion between screen pixel and shadowmap pixel (which is possible).
It would also be weary resolution dependent ... but scene complexity is irrelevant (as is with differed shading).
Anyway it just a random thought, and it's probably been done before, but it's worth a shot.


This will not work to good since geometry outside the shadow map frustum wouldn't contribute to the final image.
You could of course increase the size of shadow map frustum to avoid some problems but it'll never work ok.
Funny idea though, if you just allow for local color bleeding (limited by a small radie) it migh work ok.

Advertisement
Dark_Nebula> why do you actually render cubemaps? if your bottleneck is having 6 renders for each cubemap, why don't you try dual paraboloid maps? agrgeed, for things like reflections, they aren't so good, but considering the very diffuse nature of the interreflections, chances are the distortion DPMs introduce will be close to unnoticeable...
it might be more expensive to sample them too, but as you're bound by cubemap rendering, and not shaders, it might be worth a try :)

also, have you tried your method on larger scenes? as you only update a few cubemaps per frame, doesn't it induce some sort of lag when you move objects/lights around? a lag that would be more and more apparent as the scene complexity and the number of cubemaps to update increases?
Quote:why do you actually render cubemaps? if your bottleneck is having 6 renders for each cubemap, why don't you try dual paraboloid maps?
I've just not had the time to try it. It's on my todo-list:)

Quote:also, have you tried your method on larger scenes? as you only update a few cubemaps per frame, doesn't it induce some sort of lag when you move objects/lights around?
No, I've just tried it on small scenes (with regard to spatial extent). There is some noticable lag, especially when there is sudden changes in lighting. I've experimented with different ways to interpolate irradiance volumes to hide this, but it's not possible to remove completely without updating most light probes every frame. This will definitely be more apparent on larger scenes since there will be more probes. So it's likely that this method will not work satisfactory for scenes with wide open spaces. On the other hand there might be ways to place the probes to cover a larger volume with less probes.
For my application (think interior of flats, houses etc.) it's good enough, but there is definitely room for improvements.
Quote:I've just not had the time to try it. It's on my todo-list:)

ah yes, I missed the part "I've done no efforts to optimize this, just wanted to get it to work first." in your previous posts.

ok for the rest :)

keep us updated with your progress!

This topic is closed to new replies.

Advertisement