Deferred lighting
Deferred lighting is an alternate lighting technique, which is much different from the default Radiosity lighting that comes with Source. It uses many different lighting passes to generate higher quality lighting, with real time shadows.
Differences from vanilla radiosity
When compiling a map in any of Valve's games, each map is run through VRAD, which takes data from all the light sources and compile them into a lightmap texture. While this does provide high-quality and variable lighting, it is completely static, save for the limited ability to toggle on some lights in a scene. The difference between radiosity and Deferred lighting is that Deferred lighting computes all its lights in real time. The game takes data from the normals of the object, its geometry, its albedo, and its specular lighting to create real time accurate lighting.
Features
- Quite cheap realtime lighting and shadows
- Almost infinite number of dynamic lights that can be active (stock Source only allows for one
env_projectedtexture
at a time) - High-fidelity Godrays
- Volumetric lighting
- Light cookies (premade shadow maps)
Drawbacks
- Traditional antialiasing like MSAA might not work with it like in Black Mesa, but it depends how it was implemented into the game. As with Alien Swarm Deferred, and Lambda Wars is still supported.
- All lightmaps are disabled and only deferred lighting lights the world. (only in )
- Can be more taxing on older systems.
- DX9 only, older DirectX versions are not supported.
Media
Availability
Very few Source Engine games utilize this lighting technique, as it is very complicated to implement, the games that do use this are listed here:
- Alien Swarm Deferred
- Lambda Wars
- VANCE
- Portal 2: Desolation
- Black Mesa
- Hammer (Lighting Preview in Stock HL2 and Strata Source)
Tutorials
See also
- Alien Swarm Deferred
- Light editor
- Volumetric lighting
newLight_Point
newLight_Spot
light_deferred
light_deferred_global
- Deferred lighting (Wikipedia)
External links
- Deferred Shading on LearnOpenGL (basics)