Shadowing Techniques

Started by
24 comments, last by Mercury 19 years, 4 months ago
Quote:Shadow mapping
Render depth information for each light, then render scene with depth information projected onto geometry, doing a pass/fail test for occlusion
Suffers from aliasing artifacts due to limited texture resolution
Requires shader hardware
1 render per light per relevant update (can be cached while scene is static)


Actually shadow mapping can be done without shaders, using multitexture and gl_texture_env_combine. Here's a demo I found that impliments this technique on older hardware.
http://www.paulsprojects.net/opengl/shadowmap/shadowmap.html
______________________________________________There are only 10 types of people in the world: Those who understand binary, and those who don't.
Advertisement
I wish I could mention the technique I've been working on for the last few months... but since I'm trying to get an article published on it, I probably shouldn't just yet. Stay tuned! [smile]
Hmm... talking about articles, my article on soft shadows using a screen-space blur approach that I submitted about 6 months ago is yet to be published.
Perhaps you and others may find the following useful - http://www.rasterise.com/links.html

It is a list of shadowing papers and articles that I have found over the last few weeks whilst doing research for my project. All were found on Google and stuff but it should save you some time :)

I've found http://scholar.google.com to be useful for filtering out the rubbish :)
Speaking of Soft Shadows, did anybody see (or implement) the technique NVidia used for their Dawn demo ?

They are using shadow mapping, but instead of applying the shadow map onto the geometry in world space, they project it in texture (aka lightmap-like) space, and then blur this lightmap. The amount of blurring can even be made dependant of the pixel-to-occluder distance since you got the depth info from the shadow map.

Then they are applying this lightmap like you'd do with a normal one over the geometry - except that it's dynamically generated.. it's also very efficient since you can reuse the same lightmap for many frames, so it's less expensive that antialiasing the shadow map.

Finally because the blur is done in texture space instead of eye space, you do not have this "halo" artifact between lit/unlit areas.

Y.
Quote:Original post by Ysaneya
Dark mapping
Name is (copyright Ysaneya). I never heard anybody use this technique but in my engine i will mostly rely on this one, which is an adaptation of Lightmapping. Lightmapping is obsolete now; it simply does not work well with per-pixel lighting, which any state-of-the-art engine must have today. Dark maps are similar to lightmaps except that:
- they do not encode a color, but a "grayscale" brightness.
- there is one dark map per object and per light.
At run-time, you have one pass per light. When you paint the objects affected by your light, you render them using per-pixel lighting as usual but you modulate the end result by the dark map. This allows you to have static lights with soft shadows, it's pretty fast and does not have any particular requirement, but you can no longer use radiosity or global illumination solutions. Another advantage is that you can turn lights on/off independantly of each other.


A friend of mine made a map editor a while ago and the lighting stuff that was exported from his editor, as he described it, is almost exactly what you've said. So apparently there are some other people that have done it (first maybe, even), but I really wouldn't worry about it. He's even stopped coding now, so you've got nothing to worry about from that area, I don't think he'd care even if you did blatently copy off of him to begin with. [smile]

This topic is closed to new replies.

Advertisement