About the different shadow rendering tech methods

Hi! Lately I was wondering what different methods are there for producing realtime shadows, I don’t want and probably don’t need to for thee kind of things I do, with my level of knoledge most I will do will be picking from the 3 most popullar engines and try to optimize things, althought lately, the idea of getting into the rabit hole of small libraries has waken up some interest in me to try write a wolfstein clone or something like that, also godot devs asking for which GI method to incorporate or blender introducing virtual shadows in eevee next after UE5 is another reason for this interest.
And still, to be fair, learning about this makes you understand better why a spot light might be more performant than a omni light, if they’re implemented differently and they don’t have a naive (almost copy-pasted, more general implementation).

To be fair, there’s a lot of things, from acceleration structures, such as Octrees, BVH (Bounding volume hierarchy), BSP (Binary space partition), to different rasterizing methods, and even the given for granted algorithms can have different implementations each.

However, since you can’t do everything, I recently wanted to learn about shadow methods, I saw I tweet which I forgot to save which asked about what current shadow methods are there and people were like well, things haven’t advance much and probably at this point raytracing might be the best realtime method.

Wikipedia’s article is actually very good https://en.wikipedia.org/wiki/Shadow_mapping
Shadow volumes, aka stencil shadows were pretty good for hard shadows, but with the current poly counts that’s pretty inefficient.
I also see blender has used ESM and VMS back in 2.80 and then went for PCF right after in 2.81, however here’s a question:

  • PCF is a filtering technique, not a smoothing one???

Reading the wikipedia I found this method in the “Assorted” section and I thought this one was pretty good, I see the paper liked there is from 2001, but this video is a bit more recent.

  • Sometimes is confusing how even the same method gets rediscovered once it becomes computationally easier, I guess that’s the case here??

Unreal has many shoft shadow methods althought you need to bake them or they’re suited for different cases.

Apart from those two questions, I marked, I just want to discuss here about shadows,

2 Likes