Praxis

Spiele und Systemanforderungen, Kaufberatung sowie Windows-Ratgeber.
Seite 1 2 3 4

3D-Grafik im Wandel der Zeit, Teil 12

Shader-Effekte in Spielen

Die Shader stellen die letzte große, technische Revolution dar. Wir erklären anhand von ausgewählten Titeln die einzelnen Shader-Generationen und Ihre Aufgabe bei der Bildberechnung.

Von Marc Sehr, Julian Heimpel |

Datum: 29.03.2012


Zum Thema » Teil 1: Schatten in Spielen » Teil 2: Texturen in Spielen » Teil 3: Vegetation in Spielen » Teil 4: Wasser in Spielen » Teil 5: Babes in Spielen » Teil 6: Autos in Spielen » Teil 7: Beleuchtung in Spielen » Teil 8: Polygone in Spielen » Teil 9: Explosionen in Spielen » Teil 10: Physik in Spielen » Teil 11: Schnee und Eis in Spielen In den bisherigen elf Teilen der Serie »3D-Grafik im Wandel der Zeit« haben wir uns mit nahezu jedem Bestandteil der Computergrafik in Spielen und deren Entwicklung im Verlauf der letzten 20 Jahre beschäftigt. Im zwölften Teil unserer Reihe wenden wir uns nun den programmierbaren Shader-Prozessoren zu, die seit der Geforce 3 moderne Grafikkarten antreiben.

Seit den 1980er Jahren besitzen Computer Steckkarten für eine beschleunigte Grafikausgabe. Die letzte große Veränderung der Grafikkartenarchitektur begann im Jahre 2001 mit DirectX 8 und den damit neu eingeführten »Shadern«. In aktuellen Grafikkarten sind die oft zu mehreren Hunderten oder gar Tausenden vorhanden und haben die traditionellen und wenig flexiblen Grafikchiparchitekturen abgelöst.

Mit der Befehlshoheit auf Seiten der Spiele-Entwickler zeigen Computerspiele neue Grafikeffekte, die vorher technisch nicht effizient zu berechnen waren. Den Anfang machten hier die Pixel- und Vertex-Shader. Die Hauptaufgabe des Pixel Shaders umfasst die Veränderung der Farbe und Helligkeit der Pixel. Der Vertex Shader dagegen ist eine programmierbare Variante der aus DirectX 7 bekannten T&L-Einheit (Transform & Lighting), der sich hauptsächlich um den Aufbau der Polygone kümmert.

3D-Grafik im Wandel der Zeit, Teil 12 : Heutzutage selbstverständliche Details wie die glaubwürdige Beleuchtung, die beinahe fühlbare Witterung und die richtige Mischung aus Schärfe und Unschärfe wie hier im technisch wie spielerisch hervorragenden Battlefield 3 wären ohne Shader-Prozessoren unmöglich. Heutzutage selbstverständliche Details wie die glaubwürdige Beleuchtung, die beinahe fühlbare Witterung und die richtige Mischung aus Schärfe und Unschärfe wie hier im technisch wie spielerisch hervorragenden Battlefield 3 wären ohne Shader-Prozessoren unmöglich.

DirectX 10 erweitert die Shader-Familie um den Geometry-Shader, der kleine Änderungen am Polygonnetz durchführt und so beispielsweise volumetrische Schatten erzeugt. Zusätzlich veränderte DirectX10 die Grafikkartenarchitektur. War bis DirectX 9.0c die Aufgabe und damit die »Art« eines Shaders im Grafikchip unverrückbar festgelegt, kann der Grafikchip mit den neuen »Unified-Shadern« selbst entscheiden, welche Aufgaben ein bestimmter Shader ausführt. So sind die Ausführungseinheiten aktueller Grafikkarten immer ausgelastet statt dass wie zuvor bestimmte Shader Arten ungenutzt bleiben.

Seit DirectX 11 ermöglichen zudem die beiden »Domain« und »Hull« getauften Shader »Tessellation« als Erweiterung zu den Geometry-Shadern. Diese dynamische Anpassung der Polygonanzahl eines Objekts in Abhängigkeit vom Abstand des Betrachters berechnen diese neuen Shader in einer separaten »Tessellationseinheit«. Was die Spieleentwicklung aus ihren immer größeren Möglichkeiten gemacht hat, lesen Sie bei den ausgewählten Spielen nach.

Morrowind (2002)

Neben seinen Status als erstes großes Open-World-Rollenspiel seit Ultima IX gilt The Elder Scrolls 3: Morrowind auch als das Vorzeigespiel der mit DirectX 8 neu hinzugekommenen Shader-Effekte. Das Bethesda-Rollenspiel verwendet als erster Titel die neuen Pixel Shader (1.1) aus DirectX 8.0, um dynamische Wasseroberflächen mit vorberechneten Spiegelungen in damals unfassbarer Qualität auf den Monitor zu zaubern. Viele Spieler auch in der Redaktion erinnern sich immer noch gerne daran, wie ein kleines Kind das »neue« Wasser einfach nur betrachtet oder mit der Spielfigur durch Springen oder Schwimmen die dynamische Wasseroberfläche beeinflusst zu haben. Aber ohne eine DirectX-8-fähige Geforce 3 oder eine Radeon 9000 sah man als Spieler statt der glänzenden Brandung lediglich eine trübe Brühe um die Startinsel herumwabern.

Shader-Effekte in The Elder Scrolls 3: Morrowind

Aquanox 2 V2.159(2003)

Das U-Boot-Spiel Aquanox 2 , das der deutsche Entwickler Massive gegen Ende des Jahres 2002 veröffentlicht, galt zum Release nicht gerade als neue Grafikreferenz. Aber knapp ein halbes Jahr später veröffentlichten die Entwickler einen Patch, der das Spiel als erstes überhaupt auf DirectX 9 bürstet. Nach der Installation lief das Spiel sogar nur noch mit DirectX-9-fähigen Grafikkarten mit der neuen Pixel-Shader-Generation 2.0. Dafür freuten sich Besitzer einer solchen Grafikarte über schönere Schatten, eine geringere CPU-Belastung und eine beschleunigte 3D-Performance. Beispielsweise die schnellere Partikel-Berechnung erlaubte es den Entwicklern, den Explosionen jetzt auch Trümmerpartikel hinzuzufügen.

Diesen Artikel:   Kommentieren (32) | Drucken | E-Mail
Sagen Sie Ihre Meinung (» alle Kommentare)
Nur angemeldete Benutzer können kommentieren und bewerten!
» Zum Login

Sie sind noch nicht in der GameStar-Community angemeldet?
» Zur kostenlosen Anmeldung
Erster Beitrag  |  » Neuester Beitrag
Avatar etc.usw.
etc.usw.
#1 | 29. Mrz 2012, 16:04
Schaut bei euch niemand die Artikel durch?
rate (25)  |  rate (2)
Avatar Dalhai
Dalhai
#2 | 29. Mrz 2012, 16:10
Jaja... die bösen Schader - Effekte ;0)
rate (8)  |  rate (2)
Avatar King of K!ngZ
King of K!ngZ
#3 | 29. Mrz 2012, 16:10
Zitat von etc.usw.:
Schaut bei euch niemand die Artikel durch?


Echt schade(r).
rate (15)  |  rate (4)
Avatar Bruce will es
Bruce will es
#4 | 29. Mrz 2012, 16:13
Dieser Kommentar wurde ausgeblendet, da er nicht den Kommentar-Richtlinien entspricht.
Avatar Zitterbacke
Zitterbacke
#5 | 29. Mrz 2012, 16:19
Ich fand die Wassershader am Anfang furchtbar. Siehe Morrowind 3, die Texturen matschig und die Welt Polygonarm (ist klar das Spiel ist auch schon alt, kein Thema) aber dafür ein Wasser, dass total übertriebene Reflexionen hat. Es passt einfach nicht so in das Gesamtbild finde ich (ist ja z. B. bei DAOC ähnlich).
Bei neueren Spielen wie BF3 sieht es dagegen bombastisch aus, weil das Gesamtbild passt. Modelle und Texturen sind überragend und es ergibt sich ein schöner Einklang.
rate (9)  |  rate (21)
Avatar Kaimanic
Kaimanic
#6 | 29. Mrz 2012, 16:21
Korrekturen sind shadelich XD
rate (7)  |  rate (6)
Avatar Kuomo
Kuomo
#7 | 29. Mrz 2012, 16:39
Achja genau die SCHADER, ist wohl denglisch ;P
rate (4)  |  rate (2)
Avatar Phippu
Phippu
#8 | 29. Mrz 2012, 16:52
Sorry, aber dieser Artikel ist MÜll!!!

"mit den neuen »Unified-Shadern« der Programmierer selbst entscheiden, welche Aufgaben die einheitlichen Shader ausführen" - NEIN, Unified bedeuted dass eine Shader Einheit beispielsweise einen Pixel Shader oder Vertex Shader Code ausführen kann, früher gabs dafür separate Hardware, und das ist nur eine der verdrehten Informationen hier.

Man bekommt das Gefühl das Gamestar hier nur mal bei Wikipedia vorbeigeschaut hat und ein paar Begriffe verwendet hat, denn der Artikel erläutert nicht mal Ansatzweise wie ein Shader denn operiert.

Ein Vertex Shader z.B arbeitet anhand der Eckpunkte eines Dreieckes, z.B wird die Position des Dreieckes anhand des Objektes und der Kamera Position bestimmt.

Ein Pixel Shader berechnet dann die effektive Farbe eines Pixels, z.B aufgrund einer bestimmten Lichteinstrahlung....

Sorry GS: entweder man entschliesst sich solche Artikel zu schreiben oder eben nicht, aber sicherlich nicht so was...
rate (28)  |  rate (1)
Avatar Zitterbacke
Zitterbacke
#9 | 29. Mrz 2012, 16:53
@Bruce will es

Da hast du Recht. Der Artikel setzt wirklich einiges an Wissen voraus. Ich habe mich mit Shaderprogrammierung kaum beschäftigt aber als groben Rahmen würde ich sagen, dass der Hauptvorteil darin liegt Programmierung auf kleinster Ebene vorzunehmen. Da die Grafikkarten das so toll unterstützten verfallen viele alte Verfahren. Als Beispiel ein Wabbeleffekt von einer Wassertextur oder Wellen wie man es aus ganz alten Spielen kennt würde wegfallen da es hierfür entsprechende Shader gibt, welche die Fläche viel detailreicher, genauer und vor allem performanter darstellen.
Die Versionen erkennt man glaube ich wenn dann über Diagnosetools und diese unterscheiden sich auch nur (so glaube ich) durch die erweiterten Befehlssätze.
Die Renderpipeline ist lediglich ein Ablaufschema in welcher Reihenfolge die eingegebenen Daten verarbeitet werden. Insteressant ist das immer wenn man Daten vorberechnen muss oder Reihenfolgen beachten muss. Als Beispiel vielleicht... Direct X 9 funktioniert noch wie eine Statemachine oder eine konfigurierbare Maschine also man konnte verschiedene Konfigurationen vornehmen und dann ein beliebiges Mesh rendern. Sollte es halbdurchsichtig sein (für Wasseroberfläche z. B.) hat man eine Alphaoperation durchgeführt. Je nach dem was gerade gerendert werden sollte wurden meinetwegen bestimmte Teile mit einer gewissen Textur gerendert z. B. spezielle Wassertexturen oder Effekte. Das Renderinterface muss dann für jedes Objekt entsprechend konfiguriert werden. Wenn dieser gesamte Ablauf in der falschen bzw. ungünstigen Reihenfolge geschieht, kann es sein, dass das Ganze recht langsam wird. Es geht hier auch viel um Speichermanagment. Welche Texturen/Meshes liegen im Arbeitsspeicher (langsamer anzusteuern) und welche sollen auf der Grafikkarte (schnell) liegen. Teilweise muss man dann schon gut in die Trickkiste greifen.
Noch ein Beispiel... Nehmen wir Weltreflektionen. Die Welt oder das Level muss vorher gerendert werden und dann als Textur abgelegt und auf das spiegelnde Wasser gelegt werden. Alles in der richtigen Reihenfolge und auch noch in Schnell ;-).
Vielleicht versteht nun der ein oder andere auch warum manche Spiele massiv ruckeln obwohl sie grafisch kaum was zu bieten haben und andere wiederum super performant sind, trotz guter Grafik.
Mit den Shadern ist aber viel getan, dass man sich einige Praktiken sparen kann und wesentlich besser und schneller mit Shadern unterwegs ist. Schon ein tolles Feature :-).

Bei der Überschrift fällt mir wieder dieser tolle Song von Aerosmith ein: Shaded
rate (8)  |  rate (1)
Avatar MyXery
MyXery
#10 | 29. Mrz 2012, 16:57
oh was für tolle schader
rate (2)  |  rate (3)

 
Sie sind hier: GameStar > Hardware > Praxis > Grafikkarten > 3D-Grafik im Wandel der Zeit, Teil 12
top Top
Werde Fan von GameStar auf FacebookFacebook Aboniere den YouTube-Kanal von GamestarYouTube Besuche Gamestar auf Google+Google+ GameStar auf Twitter folgenTwitter Alle RSS-Feeds von GameStar.deRSS-Feeds Jetzt GameStar-Newsletter bestellenNewsletter
© IDG Entertainment Media GmbH - alle Rechte vorbehalten