Deferred renderer: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
__NOTOC__
__NOTOC__{{DISPLAYTITLE:Deferred lighting}}{{Stub}}{{Draft}}
{{DISPLAYTITLE:Deferred lighting}}
 
{{Stub}}
{{Draft}}
'''Deferred lighting''' is an alternate lighting technique, which is much different from the default [[Radiosity]] lighting that comes with {{Source|4}}. It uses many different lighting passes to generate higher quality lighting, with real time shadows.
'''Deferred lighting''' is an alternate lighting technique, which is much different from the default [[Radiosity]] lighting that comes with {{Source|4}}. It uses many different lighting passes to generate higher quality lighting, with real time shadows.


==Availability==
==Availability==
Very few Source games utilize this lighting technique, as it is very complicated to implement, the games that do use this are listed here:
Very few {{src|1|nt=1}} games utilize this lighting technique, as it is very complicated to implement, the games that do use this are listed here:
*{{asd|4}} [https://code.google.com/archive/p/swarm-deferred/ OpenSource]
*{{asd|4}} [https://code.google.com/archive/p/swarm-deferred/ OpenSource]
*{{lw|4}} [https://github.com/Sandern/lambdawars OpenSource]
*{{lw|4}} [https://github.com/Sandern/lambdawars OpenSource]
Line 14: Line 12:
*{{hammer|4}} (Lighting Preview in Stock HL2 and {{strata|4}})
*{{hammer|4}} (Lighting Preview in Stock HL2 and {{strata|4}})


==Differences from stock Source radiosity==
==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.
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.


===Upsides:===
===Features===
*Quite cheap realtime lighting and shadows
*Quite cheap realtime lighting and shadows
{{todo|add more}}
{{todo|add more}}
===Downsides:===
 
===Drawbacks===
*Traditional antialiasing like MSAA might not work with it like in {{bms|2}}, but it depends how it was implemented into the game. As with {{asd|2}}, and {{lw|2}} is still supported.
*Traditional antialiasing like MSAA might not work with it like in {{bms|2}}, but it depends how it was implemented into the game. As with {{asd|2}}, and {{lw|2}} is still supported.
*{{only|{{asd}}}} All lightmaps are disabled and only deferred lighting lights the world.
*{{only|{{asd}}}} All lightmaps are disabled and only deferred lighting lights the world.
==Implementing Deferred lighting into Source 2013 SP==
 
==Implementing into {{src13sp|4}}==
{{useless}}
{{todo|Write a complete tutorial on how to do this with {{lw}}'s implementation as it's the most robust that is available to the public.
{{todo|Write a complete tutorial on how to do this with {{lw}}'s implementation as it's the most robust that is available to the public.
The following directories contents need to be edited to implement deferred lighting:
The following directories contents need to be edited to implement deferred lighting:
Line 48: Line 49:
* {{ent|newLight_Spot}}
* {{ent|newLight_Spot}}


==External Links==
==External links==
* {{w|Deferred lighting}} on Wkipedia
* {{w|Deferred lighting}}
* [https://learnopengl.com/Advanced-Lighting/Deferred-Shading Deferred Shading] on LearnOpenGL (same basic principals apply)
* [https://learnopengl.com/Advanced-Lighting/Deferred-Shading Deferred Shading] on LearnOpenGL (same basic principals apply)

Revision as of 10:11, 12 March 2024

Stub

This article or section is a stub. You can help by expanding it.

Icon-under construction-blue.png
This is a draft page. It is a work in progress open to editing by anyone.
Remember to check for any notes left by the tagger at this article's talk page.

Deferred lighting is an alternate lighting technique, which is much different from the default Radiosity lighting that comes with Source Source. It uses many different lighting passes to generate higher quality lighting, with real time shadows.

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:

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
Todo: add more

Drawbacks

  • Traditional antialiasing like MSAA might not work with it like in Black Mesa Black Mesa, but it depends how it was implemented into the game. As with Alien Swarm Deferred Alien Swarm Deferred, and Lambda Wars Lambda Wars is still supported.
  • (only in Alien Swarm Deferred) All lightmaps are disabled and only deferred lighting lights the world.

Implementing into Source 2013 Singleplayer Source 2013 Singleplayer

Template:Useless

Todo: Write a complete tutorial on how to do this with Lambda Wars's implementation as it's the most robust that is available to the public.

The following directories contents need to be edited to implement deferred lighting:

  • game
    • Client
      • ?
    • Server
      • ?
    • Shared
      • ?
  • materialsystem
    • stdshaders
      • ?
  • public
    • renderparm.h

See also

External links