Deferred shading
{{short description|Screen-space shading technique}}
{{inadequate lead|date=July 2013}}
File:Deferred rendering pass col.jpgFile:Deferred rendering pass dep.jpgFile:Deferred rendering pass nor.jpgFile:Deferred rendering pass res.jpg, shadow feelers or a shadow volume must be used together with deferred shading).{{Cite web|last1=Hargreaves|first1=Shawn|last2=Harris|first2=Mark|date=2004|title=6800 Leagues Under the Sea: Deferred Shading|url=http://http.download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf|url-status=live|archive-url=https://web.archive.org/web/20091122191046/http://http.download.nvidia.com:80/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf |archive-date=November 22, 2009 |access-date=2021-01-06|website=Nvidia}}]]
{{Use mdy dates|date=January 2021}}
In the field of 3D computer graphics, deferred shading is a screen-space shading technique that is performed on a second rendering pass, after the vertex and pixel shaders are rendered.{{cite web |url=https://gamedevelopment.tutsplus.com/articles/forward-rendering-vs-deferred-rendering--gamedev-12342 |title=Forward Rendering vs. Deferred Rendering |date=October 28, 2013 |format= |accessdate=}} It was first suggested by Michael Deering in 1988.
On the first pass of a deferred shader, only data that is required for shading computation is gathered. Positions, normals, and materials for each surface are rendered into the geometry buffer (G-buffer) using "render to texture". After this, a pixel shader computes the direct and indirect lighting at each pixel using the information of the texture buffers in screen space.
Screen space directional occlusion{{cite web|last=O'Donnell|first=Yuriy|date=2011-07-18|title=Deferred Screen Space Directional Occlusion|url=http://kayru.org/articles/dssdo/|url-status=live|archive-url=https://web.archive.org/web/20121022014044/http://kayru.org:80/articles/dssdo/ |archive-date=October 22, 2012 |access-date=|work=kayru.org}} can be made part of the deferred shading pipeline to give directionality to shadows and interreflections.
Advantages
The primary advantage of deferred shading is the decoupling of scene geometry from lighting. Only one geometry pass is required, and each light is only computed for those pixels that it actually affects. This gives the ability to render many lights in a scene without a significant performance hit.{{Cite web|last=Kayi|first=Celal Cansin|date=|title=Deferred Rendering in XNA 4|url=http://homepage.lnu.se/staff/tblma/Deferred%20Rendering%20in%20XNA%204.pdf|url-status=live|archive-url=https://web.archive.org/web/20130813002000/http://homepage.lnu.se/staff/tblma/Deferred%20Rendering%20in%20XNA%204.pdf |archive-date=August 13, 2013 |access-date=2021-01-06|website=Linnaeus University}} There are some other advantages claimed for the approach. These include simpler management of complex lighting resources, ease of managing other complex shader resources, and the simplification of the software rendering pipeline.
Disadvantages
One key disadvantage of deferred rendering is the inability to handle transparency within the algorithm, although this problem is a generic one in Z-buffered scenes and it tends to be handled by delaying and sorting the rendering of transparent portions of the scene.{{cite web|last=|first=|date=2007-01-17|title=SDK 9.51 – Featured Code Samples|url=http://download.nvidia.com/developer/SDK/Individual_Samples/featured_samples.html|url-status=live|archive-url=https://web.archive.org/web/20050308113755/http://download.nvidia.com:80/developer/SDK/Individual_Samples/featured_samples.html |archive-date=March 8, 2005 |accessdate=2007-03-28|website=Nvidia}} Depth peeling can be used to achieve order-independent transparency in deferred rendering, but at the cost of additional batches and g-buffer size. Modern hardware, supporting DirectX 10 and later, is often capable of performing batches fast enough to maintain interactive frame rates. When order-independent transparency is desired (commonly for consumer applications) deferred shading is no less effective than forward shading using the same technique.
Another serious disadvantage is the difficulty with using multiple materials. It's possible to use many different materials, but it requires more data to be stored in the G-buffer, which is already quite large and takes up a large amount of the memory bandwidth.{{cite web|author=Engel|first=Wolfgang|author-link=Wolfgang Engel|date=2008-03-16|title=Light Pre-Pass Renderer|url=http://diaryofagraphicsprogrammer.blogspot.com/2008/03/light-pre-pass-renderer.html|url-status=live|archive-url=https://web.archive.org/web/20080407065111/http://diaryofagraphicsprogrammer.blogspot.com:80/2008/03/light-pre-pass-renderer.html |archive-date=April 7, 2008 |access-date=2021-01-06|work=Diary of a Graphics Programmer}}
One more disadvantage is that, due to separating the lighting stage from the geometric stage, hardware anti-aliasing does not produce correct results anymore since interpolated subsamples would result in nonsensical position, normal, and tangent attributes. One of the usual techniques to overcome this limitation is using edge detection on the final image and then applying blur over the edges,{{cite web|title=Deferred shading tutorial |publisher=Pontifical Catholic University of Rio de Janeiro |url=http://www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferred_Shading_Tutorial_SBGAMES2005.pdf |accessdate=2008-02-14 |url-status=dead |archiveurl=https://web.archive.org/web/20090306111435/http://www710.univ-lyon1.fr/~jciehl/Public/educ/GAMA/2007/Deferred_Shading_Tutorial_SBGAMES2005.pdf |archivedate=March 6, 2009 }} however recently more advanced post-process edge-smoothing techniques have been developed, such as MLAA{{cite web
| url=https://software.intel.com/sites/default/files/m/d/4/1/d/8/MLAA.pdf
| title=MLAA: Efficiently Moving Antialiasing from the GPU to the CPU
| publisher=Intel
| accessdate=2018-12-02}}{{Cite web|last=|first=|date=|title=Morphological antialiasing and topological reconstruction|url=http://igm.univ-mlv.fr/~biri/mlaa-gpu/TMLAA.pdf|url-status=live|archive-url=https://web.archive.org/web/20120403081105/http://igm.univ-mlv.fr/~biri/mlaa-gpu/TMLAA.pdf |archive-date=April 3, 2012 |access-date=2021-01-06|website=Gustave Eiffel University}} (used in Killzone 3 and Dragon Age II, among others), FXAA{{Cite web |url=http://www.ngohq.com/images/articles/fxaa/FXAA_WhitePaper.pdf |title=Archived copy |access-date=November 7, 2011 |archive-date=November 25, 2011 |archive-url=https://web.archive.org/web/20111125073450/http://www.ngohq.com/images/articles/fxaa/FXAA_WhitePaper.pdf |url-status=dead }} (used in Crysis 2, FEAR 3, Duke Nukem Forever), [https://research.nvidia.com/sites/default/files/pubs/2011-02_Subpixel-Reconstruction-Antialiasing/I3D11.pdf SRAA],{{cite web|last1=Chajdas|first1=Matthäus G.|last2=McGuire|first2=Morgan|last3=Luebke|first3=David|date=2011-02-01|title=Subpixel Reconstruction Antialiasing|url=http://research.nvidia.com/publication/subpixel-reconstruction-antialiasing|url-status=live|archive-url=https://web.archive.org/web/20110127214054/http://research.nvidia.com:80/publication/subpixel-reconstruction-antialiasing |archive-date=January 27, 2011 |access-date=2021-01-06|work=Nvidia}} [http://and.intercon.ru/releases/talks/dlaagdc2011/slides/ DLAA]{{cite web|author=Andreev|first=Dmitry|date=2011|title=Anti-Aliasing from a Different Perspective|url=http://and.intercon.ru/releases/talks/dlaagdc2011/|url-status=live|archive-url=https://web.archive.org/web/20110404143033/http://www.and.intercon.ru:80/releases/talks/dlaagdc2011/ |archive-date=April 4, 2011 |access-date=2021-01-06|work=and.intercon.ru}} (used in Star Wars: The Force Unleashed II), and post MSAA (used in Crysis 2 as default anti-aliasing solution). Although it is not an edge-smoothing technique, temporal anti-aliasing (used in Halo: Reach and Unreal Engine) can also help give edges a smoother appearance.{{cite web|author=Andreev|first=Dmitry|date=2011-03-04|title=Anti-Aliasing from a Different Perspective (GDC 2011 Extended Slides)|url=http://and.intercon.ru/releases/talks/dlaagdc2011/slides/|url-status=live|archive-url=https://web.archive.org/web/20110405211515/http://www.and.intercon.ru:80/releases/talks/dlaagdc2011/slides/ |archive-date=April 5, 2011 |access-date=2021-01-06|work=and.intercon.ru}} DirectX 10 introduced features allowing shaders to access individual samples in multi-sampled render targets (and depth buffers in version 10.1), giving users of this API access to hardware anti-aliasing in deferred shading. These features also allow them to correctly apply HDR luminance mapping to anti-aliased edges, where in earlier versions of the API any benefit of anti-aliasing may have been lost.
Deferred lighting
{{disputed section|date=August 2016}}
Deferred lighting (also known as Light Pre-Pass) is a modification of the Deferred Shading.{{cite web|url=http://www.realtimerendering.com/blog/deferred-lighting-approaches/|title=Real-Time Rendering · Deferred lighting approaches|work=realtimerendering.com|date=June 2, 2009 }} This technique uses three passes, instead of two in deferred shading. On first pass over the scene geometry, only normals and specular spread factor are written to the color buffer. The screen-space, “deferred” pass then accumulates diffuse and specular lighting data separately, so a last pass must be made over the scene geometry to output final image with per-pixel shading. The apparent advantage of deferred lighting is a dramatic reduction in the size of the G-Buffer. The obvious cost is the need to render the scene geometry twice instead of once. An additional cost is that the deferred pass in deferred lighting must output diffuse and specular irradiance separately, whereas the deferred pass in deferred shading need only output a single combined radiance value.
Due to reduction of the size of the G-buffer this technique can partially overcome one serious disadvantage of the deferred shading - multiple materials. Another problem that can be solved is MSAA. Deferred lighting can be used with MSAA on DirectX 9 hardware.{{Citation needed|date=July 2016}}
Deferred lighting in commercial games
Use of the technique has increased in video games because of the control it enables in terms of using a large amount of dynamic lights and reducing the complexity of required shader instructions. Some examples of games using deferred lighting are:
{{div col|colwidth=30em}}
- Alan Wake
- Assassin's Creed III{{cite magazine|url=https://www.gameinformer.com/b/features/archive/2012/03/28/ac-iii-the-redesigned-anvil-engine.aspx|archive-url=https://web.archive.org/web/20120330004433/http://www.gameinformer.com/b/features/archive/2012/03/28/ac-iii-the-redesigned-anvil-engine.aspx|url-status=live|archive-date=March 30, 2012|title=Assassin's Creed III: The Redesigned Anvil Engine|magazine=Game Informer}}
- BioShock Infinite{{cite web|url=http://gamer.blorge.com/2010/11/21/bioshock-infinite-development-is-ps3-focused-and-uses-uncharted-2-tech/ |title=BioShock Infinite development is PS3 focused and uses Uncharted 2 tech |work=blorge.com |url-status=dead |archiveurl=https://web.archive.org/web/20111003222842/http://gamer.blorge.com/2010/11/21/bioshock-infinite-development-is-ps3-focused-and-uses-uncharted-2-tech/ |archivedate=2011-10-03 }}
- Black Mesa {{Cite web|url=https://chetanjags.wordpress.com/2023/07/18/blackmesa-xenengine-part-4-lighting-shadows/|title=BlackMesa XenEngine: Part 4 – Lighting & Shadows|date=18 July 2023|website=chetanjags.wordpress.com|author=Chetan Jags|access-date=18 September 2023}}
- Blur
- Brink
- Crackdown and Crackdown 2{{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-crackdown2-tech-interview|title=Tech Interview: Crackdown 2|date=26 June 2010|work=Eurogamer.net}}
- Crysis 2{{cite web|url=http://www.slideshare.net/guest11b095/a-bit-more-deferred-cry-engine3|title=A Bit More Deferred Cry Engine3|author=guest11b095|work=slideshare.net|date=May 14, 2009 }}
- Dead Space,{{cite web
| title = Dead Space by Electronic Arts
| publisher = NVIDIA
| url = http://nzone.com/object/nzone_deadspace_feature.html
| accessdate = 2008-02-14 }} Dead Space 2{{cite web
| title = Face-Off: Dead Space 2
| website = Eurogamer
| url = http://www.eurogamer.net/articles/digitalfoundry-dead-space-2-face-off
| accessdate = 2010-02-01 }} and Dead Space 3{{cite news
| title = Face-Off: Dead Space 3
| website = Eurogamer
| date = February 18, 2013
| url = http://www.eurogamer.net/articles/digitalfoundry-dead-space-3-face-off
| accessdate = 2013-02-18 }}
- Deus Ex: Human Revolution {{cite web|url=https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=http%3A%2F%2Fgame.watch.impress.co.jp%2Fdocs%2Fseries%2F3dcg%2F20100922_395310.html|title=Google Translate|work=google.com}}
- Dragon's Dogma {{cite web|url=http://www.capcom-unity.com/gregaman/blog/2012/04/05/how_dragons_dogma_changed_the_mt_framework|title=GregaMan, Manage Blog|work=capcom-unity.com}}
- Guild Wars 2 {{cite web|url=http://imgur.com/a/xEtnG|title=Normals|work=Imgur}}
- Halo: Reach {{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-halo-reach-tech-interview|title=Tech Interview: Halo: Reach|date=11 December 2010|work=Eurogamer.net}}
- inFamous and inFamous 2
- LittleBigPlanet
- Metal Gear Solid V: Ground Zeroes
- Metal Gear Solid V: The Phantom Pain{{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-tech-analysis-mgs5-fox-engine|title=Tech Analysis: Metal Gear Solid 5's FOX Engine|date=5 April 2013|work=Eurogamer.net}}
- Red Dead Redemption
- Resistance series{{cite web |url=http://cmpmedia.vo.llnwd.net/o1/vault/gdc09/slides/gdc09_insomniac_prelighting.pdf |title=Archived copy |accessdate=2011-07-12 |url-status=dead |archiveurl=https://web.archive.org/web/20110915140642/http://cmpmedia.vo.llnwd.net/o1/vault/gdc09/slides/gdc09_insomniac_prelighting.pdf |archivedate=2011-09-15 }}
- Rochard
- Shift 2: Unleashed {{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-the-making-of-shift-2?page=2|title=The Making of Shift 2 Unleashed Article • Page 2 • Eurogamer.net|date=14 May 2011|work=Eurogamer.net}}
- StarCraft II {{cite web
| title = StarCraft II Effects & techniques
| publisher = AMD
| url = http://developer.amd.com/wordpress/media/2013/01/Chapter05-Filion-StarCraftII.pdf
| accessdate = 2012-07-09}}
- Uncharted and Uncharted 2{{cite web|url=http://features.cgsociety.org/story_custom.php?story_id=5545|title=CGSociety Maintenance|work=cgsociety.org|access-date=2011-07-12|archive-url=https://web.archive.org/web/20150402095240/http://features.cgsociety.org/story_custom.php?story_id=5545|archive-date=2015-04-02|url-status=dead}}
- Vanquish {{cite web|url=http://platinumgames.com/tag/deferred-rendering/ |title=Deferred Rendering « PlatinumGames Inc. |work=platinumgames.com |url-status=dead |archiveurl=https://web.archive.org/web/20101127091253/http://platinumgames.com/tag/deferred-rendering/ |archivedate=2010-11-27 }}
- Ghost of Tsushima {{cite web|url=https://gamingbolt.com/ghost-of-tsushima-analysis-a-ps4-graphics-powerhouse/ |title=Ghost of Tsushima Analysis: A PS4 Graphics Powerhouse |work=gamingbolt.com}}
{{div col end}}
Deferred shading in commercial games
In comparison to deferred lighting, this technique is not very popular{{citation needed|date=May 2018}} due to high memory size and bandwidth requirements, especially on seventh generation consoles where graphic memory size and bandwidth are limited and often bottlenecks.
{{div col|colwidth=30em}}
- Amnesia: The Dark Descent{{cite web|url=http://www.playsomnia.com/index.php?option=com_content&view=article&id=863:frictional-games-interview&catid=56:intervjui|title=Frictional Games interview|author=Silard Šimon|work=playsomnia.com}}
- Battlefield 3{{cite web|url=http://www.slideshare.net/DICEStudio/spubased-deferred-shading-in-battlefield-3-for-playstation-3|title=SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3|author=DICE|work=slideshare.net|date=March 8, 2011 }}
- Dota 2{{cite web|url=http://developer.valvesoftware.com/wiki/Dota_2|title=Valve Developer Wiki - Dota 2|accessdate=10 April 2012}}
- Dungeons
- Digital Combat Simulator (DCS) World 2.5
- Grand Theft Auto IV
- Killzone 2 and Killzone 3{{Cite web |url=http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf |title=Archived copy |access-date=2011-07-12 |archive-url=https://web.archive.org/web/20110711132810/http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf |archive-date=2011-07-11 |url-status=dead }}
- Mafia II
- Miner Wars 2081Miner Wars 2081
- Metro 2033{{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-tech-interview-metro-2033?page=2|title=Tech Interview: Metro 2033 Interview • Page 2 • Eurogamer.net|date=25 February 2010|work=Eurogamer.net}}
- Rift
- Shrek{{cite web|url=http://www.electricsheepgames.com/games3|title=History - Electric Sheep Games|accessdate=14 April 2011}}
- Splinter Cell: Conviction
- The S.T.A.L.K.E.R. game series: Shadow of Chernobyl, Clear Sky and Call of Pripyat{{cite web
| title = GPU Gems 2: Chapter 9. Deferred Shading in S.T.A.L.K.E.R
| publisher = Nvidia
| url = http://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter09.html
| date = 2005-03-07
| first = Oles | last = Shishkovtsov
| accessdate = 2011-02-02}}
| title = Deferred shading in Tabula Rasa
| publisher = NVIDIA
| url = http://http.developer.nvidia.com/GPUGems3/gpugems3_ch19.html
| accessdate = 2008-02-14
| archive-url = https://web.archive.org/web/20090203081102/http://http.developer.nvidia.com/GPUGems3/gpugems3_ch19.html
| archive-date = 2009-02-03
| url-status = dead
}}
- Trine{{cite web|url=http://forums.steampowered.com/forums/showpost.php?p=16668774&postcount=5|title=Steam Users' Forums - View Single Post - Taking the Physx load off the CPU...|work=steampowered.com}}
- Trine 2 {{cite web|url=http://forums.steampowered.com/forums/showpost.php?p=27599827&postcount=18|title=Steam Users' Forums - View Single Post - Trine 2 rendering information - anti-aliasing, overheating, stereo, input lag, etc|work=steampowered.com}}
- Viva Pinata
{{div col end}}
Game engines featuring deferred shading or rendering techniques
{{div col|colwidth=30em}}
- AnvilNext
- Chrome Engine
- CryEngine 3{{cite web|title=CryENGINE 3 Specifications |publisher=Crytek GmbH |url=http://www.crytek.com/technology/cryengine-3/specifications/ |accessdate=2009-03-27 |url-status=dead |archiveurl=https://web.archive.org/web/20090327231452/http://www.crytek.com/technology/cryengine-3/specifications/ |archivedate=March 27, 2009 }}
- Fox Engine
- Frostbite 2{{cite web
|title=Lighting you up in Battlefield 3
|publisher=DICE
|url=https://media.contentapi.ea.com/content/dam/eacom/frostbite/files/gdc11-lightingyouupinbattlefield3.pdf
|archive-url=https://web.archive.org/web/20110825085117/http://publications.dice.se/attachments/GDC11_LightingYouUpInBattlefield3.pptx
|url-status=dead
|archive-date=August 25, 2011
|date=March 3, 2011
|accessdate=September 15, 2011
}}
|title = GameStart – Feature List
|url = http://gamestart3d.com/feature_list/
|url-status = dead
|archiveurl = https://web.archive.org/web/20111202181806/http://gamestart3d.com/feature_list
|archivedate = 2011-12-02
}}
| title = Infinity Development Journal – Deferred Lighting
| publisher = I-Novae Studios
| url = http://www.infinity-universe.com/Infinity/index.php?option=com_content&task=view&id=105&Itemid=26
| archive-url = https://archive.today/20130126165723/http://www.infinity-universe.com/Infinity/index.php?option=com_content&task=view&id=105&Itemid=26
| url-status = dead
| archive-date = 2013-01-26
| date = 2009-04-03
| accessdate = 2011-01-26
}}
| title = BUILD: Deferred rendering
| website = MCV
| url = http://www.develop-online.net/tools-and-tech/build-deferred-rendering/0116368
| date = 2009-02-26
| accessdate = 2015-04-08
}}
| title = Torque 3D Development - Advanced Lighting (deferred lighting hybrid)
| url = http://www.garagegames.com/community/blog/view/16539/
| date = 2009-03-03
| accessdate = 2015-07-02
}}
| title = Unity 3 Feature Preview – Deferred Rendering
| publisher = Unity Technologies
| url = http://blogs.unity3d.com/2010/09/09/unity-3-feature-preview-deferred-rendering/
| first = Ethan | last = Vosburgh
| date = 2010-09-09
| accessdate = 2011-01-26
}}
| title = Unreal Engine 4 - Rendering Overview
| publisher = Epic Games
| url = https://docs.unrealengine.com/latest/INT/Engine/Rendering/Overview/index.html
| accessdate = June 6, 2015
}}
|title = Vision Engine 8.2 Brings 3D Technologies Cross-Platform
|url = http://www.havok.com/news-and-press/releases/vision-engine-82-brings-3d-technologies-cross-platform
|date = 2011-10-10
|accessdate = 2015-04-08
|url-status = dead
|archiveurl = https://web.archive.org/web/20121116234611/http://havok.com/news-and-press/releases/vision-engine-82-brings-3d-technologies-cross-platform
|archivedate = 2012-11-16
}}
- Creation Engine as of Fallout 4 and Skyrim SE{{cite web
|url=https://bethesda.net/en/article/2Y37xeRPeUW0EgkgaKW8oA/the-graphics-technology-of-fallout-4
|title=The Graphics Technology of Fallout 4
|work=Bethesda Softworks
|date=November 4, 2015
|accessdate=2020-04-24}}
- Fusion Engine (early Illusion Engine) as of Mafia III and Mafia: Definitive Edition
{{div col end}}
|url=https://github.com/raysan5/raylib/blob/master/examples/shaders/shaders_deferred_render.c
|title=raylib [shaders] example - deferred rendering
|work=Raylib community, Justin Andreas Lacoste
|date=2023-10-31
|accessdate=2024-01-01}}
History
The idea of deferred shading was originally introduced by Michael Deering and his colleagues in a paper{{cite journal
| last = Deering
| first = Michael
|author2=Stephanie Winner |author3=Bic Schediwy |author4=Chris Duffy |author5=Neil Hunt
| title = The triangle processor and normal vector shader: A VLSI system for high performance graphics
| journal = ACM SIGGRAPH Computer Graphics
| volume = 22
| issue = 4
| pages = 21–30
| doi = 10.1145/378456.378468
| year = 1988
}} published in 1988 titled The triangle processor and normal vector shader: a VLSI system for high performance graphics. Although the paper never uses the word "deferred", a key concept is introduced; each pixel is shaded only once after depth resolution. Deferred shading as we know it today, using G-buffers, was introduced in a paper by Saito and Takahashi in 1990,{{cite journal
| last = Saito
| first = Takafumi
|author2=Tokiichiro Takahashi
| title = Comprehensible rendering of 3-D shapes
| journal = ACM SIGGRAPH Computer Graphics
| volume = 24
| issue = 4
| pages = 197–206
| year = 1990
| doi = 10.1145/97880.97901 }} although they too do not use the word "deferred". The first deferred shaded video game was Shrek, an Xbox launch title shipped in 2001.{{Cite web|url = https://sites.google.com/site/richgel99/the-early-history-of-deferred-shading-and-lighting|title = GDC 2004 Presentation on Deferred Lighting and Shading|last = Geldreich|first = Rich|access-date = August 24, 2013|archive-date = March 11, 2014|archive-url = https://web.archive.org/web/20140311040026/https://sites.google.com/site/richgel99/home|url-status = dead}} Around 2004, implementations on commodity graphics hardware started to appear.{{cite web
| title = Deferred Shading
| publisher = NVIDIA
| url = http://download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf
| accessdate = 2007-03-28 }} The technique later gained popularity for applications such as video games, finally becoming mainstream around 2008 to 2010.{{cite web
|last = Klint
|first = Josh
|title = Deferred Rendering in Leadwerks Engine
|publisher = Leadwerks
|url = http://www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf
|url-status = dead
|archiveurl = https://web.archive.org/web/20081209174351/http://www.leadwerks.com/files/Deferred_Rendering_in_Leadwerks_Engine.pdf
|archivedate = 2008-12-09
}}