Zum Inhalt springen

Deferred Shading

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein In der Computergrafik 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. im Jahr 1988 eingeführt.<ref>The triangle processor and normal vector shader: a VLSI system for high performance graphics</ref> Das heute bekannte Konzept stammt von Saito und Takahashi aus dem Jahre 1990.<ref>Comprehensible Rendering of 3-D Shapes</ref>

Prinzip

Datei:Deferred Shading FBOs.jpg
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, Intensität und Einfallswinkel einer Lichtquelle der finale Farbwert für den jeweiligen Eckpunkt ermittelt. Für jeden Eckpunkt muss so jede Lichtquelle 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.<ref name="gpugems2"><templatestyles src="Webarchiv/styles.css" />{{#if:20110716144027

      | {{#ifeq: 20110716144027 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20110716144027}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20110716144027}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Deferred Shading in S.T.A.L.K.E.R. | {{#invoke:WLink|getEscapedTitle|Deferred Shading in S.T.A.L.K.E.R.}} | {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20110716144027|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html}}
    || {{#if:  || }}
  }}{{#if: Deferred Shading in S.T.A.L.K.E.R.
    | {{#if: {{#invoke:WLink|isBracketedLink|Deferred Shading in S.T.A.L.K.E.R.}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> 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 <math>f \in \mathcal{O}(m \cdot n)</math> (m sei die Anzahl der Primitive, n die Anzahl der Lichter), erfolgt die Beleuchtung aber nach der Geometrieberechnung, reduziert sich der Aufwand drastisch auf <math>f \in \mathcal{O}(m+n)</math>.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20110919133443

      | {{#ifeq: 20110919133443 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20110919133443}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2023-12-10 05:07:17 InternetArchiveBot | 2023-12-10 05:07:17 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20110919133443}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2023-12-10 05:07:17 InternetArchiveBot | 2023-12-10 05:07:17 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2023-12-10 05:07:17 InternetArchiveBot | 2023-12-10 05:07:17 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }} (Memento{{#if: {{#if: 2023-12-10 05:07:17 InternetArchiveBot | 2023-12-10 05:07:17 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Shawn Hargreaves on Deferred Shading | {{#invoke:WLink|getEscapedTitle|Shawn Hargreaves on Deferred Shading}} | {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf}} }}  
                 }}}}}}}}{{#if:2023-12-10 05:07:17 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20110919133443|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.talula.demon.co.uk/DeferredShading.pdf}}
    || {{#if:  || }}
  }}{{#if: Shawn Hargreaves on Deferred Shading
    | {{#if: {{#invoke:WLink|isBracketedLink|Shawn Hargreaves on Deferred Shading}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.talula.demon.co.uk/DeferredShading.pdf%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.talula.demon.co.uk/DeferredShading.pdf%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.talula.demon.co.uk/DeferredShading.pdf }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} (PDF; 449 kB)</ref> 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 wird das Deferred Shading in den meisten kommerziellen Echtzeitgrafikanwendungen und Computerspielen wie zum Beispiel in S.T.A.L.K.E.R.<ref name="gpugems2"/>, StarCraft II<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20111103201103

      | {{#ifeq: 20111103201103 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20111103201103}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-11-23 18:10:18 InternetArchiveBot | 2024-11-23 18:10:18 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20111103201103}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-11-23 18:10:18 InternetArchiveBot | 2024-11-23 18:10:18 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-11-23 18:10:18 InternetArchiveBot | 2024-11-23 18:10:18 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }} (Memento{{#if: {{#if: 2024-11-23 18:10:18 InternetArchiveBot | 2024-11-23 18:10:18 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Starcraft 2: Technology and engine dissected | {{#invoke:WLink|getEscapedTitle|Starcraft 2: Technology and engine dissected}} | {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}} }}  
                 }}}}}}}}{{#if:2024-11-23 18:10:18 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20111103201103|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/}}
    || {{#if:  || }}
  }}{{#if: Starcraft 2: Technology and engine dissected
    | {{#if: {{#invoke:WLink|isBracketedLink|Starcraft 2: Technology and engine dissected}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.pcgameshardware.com/aid,674502/Starcraft-2-Technology-and-engine-dissected/News/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> und Gears of War<ref>Unreal Developer Network</ref> verwendet.

Einzelnachweise

<references />