A better shadow system?

Is there an alternate way io do shadows?
I don’t like the spotlight effect. It takes away from my scene.
I would prefer my entire scene to have even lighting, and be able to use a light to cast shadows.
I played around with the shadow example to accomplish this, but my scene then has too much light in one area.
If there is another way to do shadow, I am willing to learn, even if it is difficult. Does anyone have any ideas?

Well, the most common alternative I can think of, is using Shadow Volumes (aka Stencil Shadows).
This is used in most games, both old and new - although, it’s not supported in Panda3D by default.
treeform has been working on it:
I believe he is still working on a faster C++ port of it, but I’m not sure about that.

Another common approach is projected shadows, which are cheap and easy and don’t add excess light to your scene. This is demonstrated in direct/src/showbase/ShadowDemo.py.


you can make the shadow projected texture, but I think it is too complex, try reading some books/posts about this theme(or try the search) and yeah, I forgot, there is a nice explanation of shadowing in panda3D here:

Gee, that’s not a very friendly response. Let’s try to keep the snarky comments to a minimum here–it makes for a much more productive community for everyone.


You can do shadow maps for directional lights, too. Typically, you’ll do it with cascading shadow maps. However, I don’t think Panda has support for that built-in, so you’d have to do some coding yourself to set that up.
In general, shadows is one of those Really Hard problems in real-time computer graphics, because it’s part of global illumination, which is still an open research problem.

Thanks very much for all your replies.
I’ll look at the demonstrated in direct/src/showbase/ShadowDemo.py right away and see how that goes.
Stencil shadows sounds interested.
Dany0 has a sense of humour. 8)
Thanks again for replying.

Shadows volumes, are not that fast on most graphics cards. Common shadows that i see while playing games are cascading shadow maps, it would be good to get implementation of them into panda3d.

I’ve already written that in another post. First I’ve to admit that I don’t understand Panda3D 100% therefore maybe I’m wrong. IMO The current shader generator is fairly limited. If I like to implement I new lighting model (Oren-Nayar diffuse lighting as a an example) I can’t see a simple possibility the extend the engine without modifying the C++ code. The same is true for shadows. Although there is an example, it is more or less useless because, the complete auto shader system is disabled (I’m happy if I’m wrong with that). Before we start to think about the best shadow mapping approach (with geometry shaders maybe shadow volumes are resurrected, on the other hand shadow mapping works well with transparency) maybe we should think about the problem how we like to intergrate a shadowing system into Panda3D (for directional lights, spot lights, point lights, …). But thats just my opinion. There was a post from Yosh about a possible shadowing system (discourse.panda3d.org/viewtopic.php?p=23154), that is so easy to implement that anyone only needs a week for the implementation. I’m not that smart that I currently see such a generic easy solution.

Even cascading shadow maps do not solve all aliasing problem that may arise (Idea e.g. cg.tuwien.ac.at/research/pub … eprint.pdf)