2 World Shadows [Canopy Shadows]

Started by
30 comments, last by Guoshima 17 years, 11 months ago
Hello, I just took a closer look at the shadows from 2 worlds. The shadows from the trees look extremely detailed. I am really wondering how they achieve such a good quality. Even if I would use a 2K by 2K texture for only 50m on 50m in my engine, the quality wouldn't be that good. Any idea on what tricks they might be using. This has defently nothing to do with using LiSPSM, VSM, PCF or any other trick, but just the shadow quality itself. Regards, Kenzo [Edited by - Guoshima on April 19, 2006 2:51:49 AM]
Advertisement
I reckon they use Canopy Shadows for their tree-shadows, in which they project a high-resolution (static) shadow-map on the scene "under" each tree, using projective texturing. It's not 100% correct but very effective, non the less, the shadows of the leafs will even be projected on persons that walk under the tree.

I noticed Bethesda does the same in Oblivion for their tree-shadows, by the way.

Edit: It seems Epic uses the same technique in their Unreal-engines: there is small bit about Canopy Shadows for trees on this page: http://udn.epicgames.com/Two/ExampleMapsAdvLighting#Tree_Canopy_Shadows

A screenshot showing Canopy Shadows:

(This screenshot is from Epic Megagames' developer network)

[Edited by - HolyFish on April 18, 2006 4:16:20 PM]
The only problem (which is actually a big one depending on what you want) with the described method, is that it breaks down fairly quickly when the direction of the light source changes significantly with respect to the direction that the original shadow map was baked from. You would have serious trouble getting accurate shadows out of this method if you wanted to have a true day/night cycle with cycling sun/moon.
hmm looks very interesting actually :)

Does anyone can give me little bit more explenation about this, or point me to somewhere where I can read/find more information perhaps. A quick google didn't gave me lot on first sight, but I'll take another look tomorrow then.

Regards,
Kenzo
Quote:Original post by HolyFish
I reckon they use Canopy Shadows for their tree-shadows, in which they project a high-resolution (static) shadow-map on the scene "under" each tree, using projective texturing.

Am I missing something, because as I read that 'canopy shadows' is just regular projective texturing, theres nothing new going on except they've given it a special name.
Hi Kenzo,

If you want to use Canopy Shadows you'll have to look into Projective Texturing, cause that's really all there is to it, I imagine.
I learned a great deal about Projective Texturing by reading this article (http://www.paulsprojects.net/tutorials/smt/smt.html). It's a shadowmapping tutorial, but has a very nice introduction about Projective Texturing.

If you animate the shadowmap a tiny bit by scrolling it from side to side and up and down randomly (so it looks like the leafs wave in the wind) I bet the result would be very satisfying and convincing, if you can live with the fact it's fake :)

Quote:The only problem direction of the light source changes significantly with respect to the direction that the original shadow map was baked from.
That's right, but I guess that's one of those things you'll have to sleep about and consider to use higher quality shadows instead of going for 100% realism.

Oblivion comes to mind again, cause it's a recent game that has canopy shadows, which has a full day/night cycle and it's really not that much of an issue there.
Quote:Original post by OrangyTang
Quote:Original post by HolyFish
I reckon they use Canopy Shadows for their tree-shadows, in which they project a high-resolution (static) shadow-map on the scene "under" each tree, using projective texturing.

Am I missing something, because as I read that 'canopy shadows' is just regular projective texturing, theres nothing new going on except they've given it a special name.

Exactly, like I said above (sorry I was probably typing when you posted your reply), there's nothing fancy about them, but they do the trick.
Sometimes the hardest problems have the simplest solutions :)
Quote:Original post by HolyFish
...cause it's a recent game that has canopy shadows, which has a full day/night cycle and it's really not that much of an issue there.


But what if you could have real shadows?? :)
It wouldn't really be that hard to make the projected shadow update once every minute or whatever update rate you needed. Even if it was an extremely high poly tree model, you could easily update the shadowmap once in a while as long as the sun didn't move too fast...
Isn't it just a single render pass per light? That isn't as taxing as many people would imagine on modern graphics cards, as long as you don't have too many lights.

This topic is closed to new replies.

Advertisement