Classic 3D videogame shadow techniques
The article examines the evolution of shadow techniques in 3D video games, detailing methods like blob shadows and shadow mapping, while highlighting their artistic and technical implications in modern gaming.
Read original articleThe article discusses various classic shadow techniques used in 3D video games, highlighting their evolution and implementation. It begins with a philosophical dialogue from the film "Perfect Days," which sets the stage for exploring how shadows are perceived in both reality and gaming. The author explains simple shadow techniques, starting with 2D shadows and progressing to more complex 3D methods like blob shadows, planar shadows, and projected texture drop shadows. Each technique is illustrated with examples from notable games, such as "Super Mario 64" and "Doom 3." The article also covers shadow mapping, which has become the standard approach in modern games, and stencil shadows, which, despite their unique aesthetic, are less commonly used today due to their computational demands. The discussion concludes with a look at how modern games integrate traditional techniques, such as Cascaded Shadow Maps and lightmaps, to enhance visual fidelity while maintaining performance. Overall, the piece provides a comprehensive overview of how shadows have been crafted in video games, reflecting both artistic choices and technical constraints.
- The article explores the philosophical and technical aspects of shadow techniques in 3D video games.
- It details various shadow techniques, including blob shadows, planar shadows, and shadow mapping.
- Examples from classic games illustrate the evolution of shadow rendering methods.
- Stencil shadows are noted for their unique aesthetic but are less common due to performance issues.
- Modern games combine traditional techniques to achieve high-quality visuals while optimizing performance.
Related
So you think you know box shadows?
This article explores creative uses of box shadows in web design, covering basics, layering for effects, simulating 3D, and performance considerations. It showcases innovative applications with code snippets and demos.
My favorite tools and techniques for procedural gamedev
Casey Primozic shares his procedural game development techniques, focusing on seamless textures, custom shaders, AI-generated textures, and volumetric effects, while exploring future applications like Constructive Solid Geometry for 3D manipulation.
Yesterday's Pixels, Today
Ramsey Nasser's "Restricted Airspace," inspired by Star Fox, features a thick pixel aesthetic with low resolution and flat shading. He offers a tutorial using Three.js for retro game design techniques.
Parallax Scrolling on the Gameboy Color
The article explores game development techniques for the Game Boy Color, focusing on simulating parallax scrolling and promoting the Kickstarter campaign for "Depths of Europa," a metroidvania game.
Building Real-Time Global Illumination: Part 1
The article details the development of real-time global illumination using Radiance Cascades, improving efficiency with a Jump Flood Algorithm, and sets the stage for further exploration of advanced techniques.
It's not an optical illusion or artistic vibe or anything. The sky is blue, shadows on a clear day are illuminated by bounced light from the sky, therefore shadows are blue.
If you look underneath cars you can see it - A sharp blue shadow where the sky is visible, that fades to true black where the car's body occludes light from the sky.
If you combine this sharp blue sun shadow with a soft and black "AO" sky shadow you can get very pretty shadows for cheap.
IIRC in dark environments they also rig the shadow to be brighter than the ground to make sure it remains visible.
I expect area lights and soft shadows to become the norm as ray-traced techniques are adopted. If you have the hardware, it's worth checking out Quake 2 RTX to see what the future might look like.
Lastly, I've added your blog to my growing list of graphics resources: https://github.com/aaron9000/c-game-resources
Revolte, for the PowerVR PCX1, had stencil shadows in 1996.
https://www.youtube.com/watch?v=7BvtML5dIuI
The PowerVR PCX1 had hardware support for shadow volumes, which were implemented more efficiently than standard stencil shadows. Rather than drawing the scene multiple times, it basically did a depth-only pre-pass (in hardware, to an on-chip depth/stencil buffer) to determine visible pixels and test the shadow volumes to determine what pixels are in shadow, then it preformed texture sampling and shading afterwards, with lighting brightness adjusted by shadow volume results. It would only shade visible pixels, overdraw would not waste bandwidth on unnecessary texture fetches.
The Dreamcast, based on the successor to the PCX1, also had many games with shadow volumes. The Dreamcast's implementation was more flexible, and its volumes could adjust more than lighting, such as what texture is used, UV mapping, or even what blending equation is used for transparent polygons.
I've managed to get soft shadows on the DC (https://imgur.com/a/DyaqzZD at the end), although it's pretty fill rate heavy, since it falls back to a more standard stencil method and redraws the shadow multiple times.
3 people illuminated by 2 lamps will project 6 shadows. Where the 6 shadows all overlap, that will be "black" (or only picking ambient light). In other places where less shadows overlap, you will get a gradient of illumination.
F-29 RETAL aka F29 Retaliator aka F29
That shadow was another small tidbit what gave this game the enormous feel of speed.
The moment that’s still stuck with me happened while stealing a car in a back alley at night. Right as my player character entered the car a police man came around the corner. He „saw“ me stealing the car and pulled his gun right when the headlights of the car turned on and cast a huge shadow of the police man in motion onto a nearby wall.
The shadow overlap in MGS is not completely incorrect as there's ambient light, scattering and other similar global illumination phenomena.
>Mirror’s Edge (2008, PC) is basically Lightmaps: The Game.
Lol, true. Impressive game at the time, and even nowadays.
edit: really nice and nostalgic read, I played almost all of the games mentioned.
I am toying with lighting little voxel grid scene these days, targeting RP2040 and a measly 160x120 px screen and it's crazy how computationally and memory expensive this stuff is.
[1] https://www.slideshare.net/slideshow/henrikgdc09-compat/3128...
They should indeed get darker when there are multiple significant light sources, as in the Metal Gear Solid screenshot. This is because the addition of another obstruction (i.e. Solid Snake) causes more sources of light to be blocked.
Related
So you think you know box shadows?
This article explores creative uses of box shadows in web design, covering basics, layering for effects, simulating 3D, and performance considerations. It showcases innovative applications with code snippets and demos.
My favorite tools and techniques for procedural gamedev
Casey Primozic shares his procedural game development techniques, focusing on seamless textures, custom shaders, AI-generated textures, and volumetric effects, while exploring future applications like Constructive Solid Geometry for 3D manipulation.
Yesterday's Pixels, Today
Ramsey Nasser's "Restricted Airspace," inspired by Star Fox, features a thick pixel aesthetic with low resolution and flat shading. He offers a tutorial using Three.js for retro game design techniques.
Parallax Scrolling on the Gameboy Color
The article explores game development techniques for the Game Boy Color, focusing on simulating parallax scrolling and promoting the Kickstarter campaign for "Depths of Europa," a metroidvania game.
Building Real-Time Global Illumination: Part 1
The article details the development of real-time global illumination using Radiance Cascades, improving efficiency with a Jump Flood Algorithm, and sets the stage for further exploration of advanced techniques.