Deferred Shading

Deferred Shading

In der Computergraphik beschreibt Deferred Shading (engl. verzögerte oder aufgeschobene Schattierung) eine Methode, um in dreidimensionalen Szenen die Geometrieverarbeitung, also die Darstellung der physischen Form der Objekte, von der Lichtberechnung zu trennen. So sind mehrere hundert dynamische Lichter in geometrisch komplexen Szenen möglich. Die Grundidee, einen finalen Pixelfarbwert erst nach der Tiefenauflösung zu berechnen, wurde zuerst von Michael Deering et al. 1988 eingeführt.[1] Das heute bekannte Konzept stammt von Saito und Takahashi aus dem Jahre 1990.[2]

Inhaltsverzeichnis

Prinzip

Die verschiedenen Render Targets sowie Informationen zu den Lichtquellen werden zum fertigen Bild verrechnet.

In klassischen Rendermethoden wird anhand von Tiefe (depth), Ausrichtung (normals) und Farbe (albedo) eines Eckpunktes und Farbe, Intensität und Einfallswinkel einer Lichtquelle der finale Farbwert für den jeweiligen Eckpunkt ermittelt. Für jede Lichtquelle muss so jeder Eckpunkt zur Berechnung herangezogen werden.

Beim Deferred Shading werden nun Tiefenwert, Ausrichtung und Farbe eines jeden Pixels in jeweils eine Textur in Bildschirmgröße gespeichert. Dies wird durch sogenannte Multiple Render Targets ermöglicht, wobei in jedem Rendervorgang in verschiedene Framebufferobjekte (die Texturen) gleichzeitig geschrieben werden kann.[3] Statt dass nun jeder Eckpunkt mit den Lichtquellen verrechnet werden muss, muss nur noch jedes Pixel (in dem alle benötigten Werte – depth, normals und albedo – vorhanden sind) bei der Berechnung berücksichtigt werden.

Die Berechnung selbst erfolgt durch klassische Beleuchtungsmodelle, wie zum Beispiel nach Phong. Dabei kann zusätzlich noch Glanzlicht mit einbezogen werden. Technisch geschieht das im Pixel- bzw. Fragment-Shader am Ende der Grafikpipeline.

Vor- und Nachteile

Wenn jede Lichtquelle mit jedem Eckpunkt abgeglichen werden muss, ergibt sich ein Aufwand von f \in \mathcal{O}(m*n) (m sei die Anzahl der Primitive, n die Anzahl der Lichter), erfolgt die Beleuchtung aber nach der Geometrieberechnung reduziert sich der Aufwand drastisch auf f \in \mathcal{O}(m+n).[4] Dadurch sind viele hundert Lichter in komplexen Szenen mit moderaten Hardwareanforderung möglich.

Aufgrund der Verwendung der Multiple Render Targets beschränkt man sich jedoch auf Grafikhardware, die mindestens das Shader Model 3.0 (OpenGL ab Version 2, DirectX ab Version 9) unterstützt. Außerdem gestaltet sich der Einsatz von Transparenz in der Szene schwierig, da ein durchsichtiges Material sowohl die eigenen Informationen, als auch die Informationen dahinter liegender Objekte enthält und so das Beleuchtungsmodell täuscht. Dies muss bei der Programmierung bedacht und umgangen werden.

Anwendung

Erste auf Grafikhardware implementierte Anwendung erfuhr Deferred Shading um 2004. Heutzutage (2011) ist es Standard in den meisten kommerziellen Echtzeitgrafikanwendungen und besonders aus Spielen wie S.T.A.L.K.E.R.[5], StarCraft II[6] und Gears of War[7] bekannt.

Einzelnachweise

  1. The triangle processor and normal vector shader: a VLSI system for high performance graphics
  2. Comprehensible Rendering of 3-D Shapes
  3. Deferred Shading in S.T.A.L.K.E.R.
  4. Shawn Hargreaves on Deferred Shading
  5. Deferred Shading in S.T.A.L.K.E.R.
  6. Starcraft 2: Technology and engine dissected
  7. Unreal Developer Network

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Deferred shading — Diffuse Color G Buffer Z Buffer …   Wikipedia

  • Deferred Shading — G Buffer de couleur Z Buffer …   Wikipédia en Français

  • Отложенное освещение и затенение — Отложенное освещение и затенение, отложенный рендеринг (англ. deferred shading) программная техника (методика) в трёхмерной компьютерной графике, которая обрабатывает освещение и затенение визуальной сцены. В результате работы алгоритма… …   Википедия

  • Multiple Render Targets — In the field of 3D computer graphics, Multiple Render Targets, or MRT, is a feature of modern graphics processing units (GPUs) that allows the programmable rendering pipeline to render images to multiple render target textures at once. These… …   Wikipedia

  • Scanline rendering — is an algorithm for visible surface determination, in 3D computer graphics,that works on a row by row basis rather than a polygon by polygon or pixel by pixel basis. All of the polygons to be rendered are first sorted by the top y coordinate at… …   Wikipedia

  • Antialiasing (Computergrafik) — Eine Computergrafik, die oben ohne und unten mit Antialiasing berechnet wurde. Durch Antialiasing wird das harte Erscheinungsbild der Objektkanten geglättet und die dünnen Streifen werden realistischer dargestellt. Antialiasing, auch Anti… …   Deutsch Wikipedia

  • S.T.A.L.K.E.R.: Shadow of Chernobyl — S.T.A.L.K.E.R. redirects here. For the prequel, see S.T.A.L.K.E.R.: Clear Sky. For the sequel, see S.T.A.L.K.E.R.: Call of Pripyat. S.T.A.L.K.E.R.: Shadow of Chernobyl The European cover art for S.T.A.L.K.E.R.: Shadow of Chernobyl …   Wikipedia

  • Computer graphics lighting — refers to the simulation of light in computer graphics. This simulation can either be extremely accurate, as is the case in an application like Radiance which attempts to track the energy flow of light interacting with materials using radiosity… …   Wikipedia

  • CryEngine 3 — Игровой движок (Список) Официальный логотип CryEngine 3 …   Википедия

  • Unity (Spielengine) — Unity Entwickler Unity Technologies Aktuelle Version 3.4.1 (Oktober 2011) Betriebssystem Microsoft Windows, Apple Mac OS X (Entwicklungs und Zielplattformen), PlayStation 3, Xbox (360), Nintendo Wii, iOS …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”