Love when a professor posts their lectures publically online because it shows that they actually have a desire to teach and spread their knowledge, not just get paid for their knowledge. Howdy from Texas A&M, really enjoyed the lecture!
Fun fact about shadow volumes: they are still used in both the Enfusion (DayZ Standalone) and Real Virtuality (Arma 3) engines for opaque geometry like characters, vehicles, buildings, etc, while also using shadowmaps for non-opaque geometry like glass or foliage. Very nice results when it works!
In VR, we can really get away without shadows! :-D We perceive depth and scene structure directly from stereo visual data. Still, they are awesome for realism / immersion, if your computation time can afford them. Thank you for the lecture!
The first time I started thinking about how this might work was when I first played Tom Clancy's Splinter Cell(The first one) back in 2003. I distinctly remember being like: "Huh. Most lights seem to cast a shadow. I notice that some are lower resolution, which implies that the shadow data is being stored in some kinda texture or matrice." I was 11 years old when I had these thoughts. 21 years later, I finally find out I was right. XD Stencil shadows explains Doom 3 SO MUCH. XD
Shadow volumes seem great with extremely low poly models. You can still have a 50k poly player, but have an "Ocarina of time"-poly player for shadow volumes. It seems like the pixel shader would be: void fragment() { stencil += sign(dot(normal, eye - position)); } And that'll populate the stencil with the total count. Very simple!