Benutzer:Coolcat: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Komplettüberarbeitung des Shader-Artikels)
 
 
(44 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Komplettüberarbeitung des [[Shader]]-Artikels ==
+
* Realname: Martin Weusten
 
+
* Studium (abgeschlossen):
Die traditionelle [[Feste Funktionspipeline|Funktionspipeline]] der [[OpenGL]] ist eine feste Pipeline, auf die man nur beschränkt durch Statechanges Einfluß nehmen kann. Man hat also an sehr vielen Stellen starre Vorgaben die nur minimal anpassbar sind. So sind z.B. Farbberechnungen oder die Beleuchtung fest definiert und nur wenige ihrer Attribute können variiert werden. Neuere Algorithmen erfordern aber eine viel höhere Flexibiltät. Einzelne Komponenten der Pipeline können durch kleine Programme, sog. ''Shader'' ersetzt werden. Bevor man sich mit Shadern beschäftigt hat sollte man die Grundlagen von OpenGL und den Aufbau der Renderingspipeline vollständig verstanden haben.
+
** Diplom Informatiker
 
+
** Vertiefungsrichtung: Computergrafik
Es gibt verschiedene Shader-Versionen, das sogenannte ''ShaderModel'', kurz SM. Man sollte immer darauf achten welches SM die eigene Grafikkarte unterstützt. Hier ein paar grobe Richtwerte:
+
** RWTH Aachen University
 
+
* Platform: Linux, C++
{|{{Prettytable_B1}}
+
* Web: [http://martin-weusten.de martin-weusten.de]
!   Hersteller  !! Chip !! ShaderModel
+
* Jabber: http://jabber.rwth-aachen.de/w/images/c/ca/Jid-martin.weusten.jpg http://jabber.rwth-aachen.de/w/images/b/ba/Modrewrite-martin.weusten.gif
|-
+
::(das ist '''keine''' EMailadresse, sondern eine [http://jabber.rwth-aachen.de/wiki/Jabber_-_Einfach_erkl%C3%A4rt! Jabberadresse!])
| ATI || Radeon 9800 Pro || 2.0
 
|-
 
| Nvidia
 
| GeForce 9800 GT
 
| 4.0
 
|}
 
 
 
Folgendes Bild zeigt den Aufbau der festen Renderingpipeline. Mit roten Kästen sind die Teile markiert die sich durch eigene kleine Programme, also Shader ersetzen lassen. Weiter unten im Artikel werden diese Teile dann im einzelnen erklärt. Die im Bild als optional markierten Teile sind standardmäßig abgeschaltet und nur auf neuester Grafikhardware verfügbar.
 
 
 
[[Bild:Pipeline.png]]
 
 
 
Der Scissor- und Stencil-Test ist im Bild nach dem Pixelshader angeordnet. Auf den meisten Diagrammen im Internet ist dies ebenfalls so, daher haben wir uns entschieden diese hier genauso zu machen. Höchstwahrscheinlich ist der Scissor-Test aber direkt im Rasterizer implementiert und auch der Stencil-Test kommt vermutlich aus Performancegründen vor dem Pixelshader. Möglicherweise ist dies auch auf verschiedenen Chips unterschiedlich implementiert. Für das Verständnis der Shader sind diese Implementierungsdetails jedoch unerheblich.
 
 
 
=== Vertexshader ===
 
=== Geometryshader ===
 
=== Transform-Feedback ===
 
=== Fragmentshader (auch Pixelshader) ===
 

Aktuelle Version vom 30. Januar 2011, 18:38 Uhr

  • Realname: Martin Weusten
  • Studium (abgeschlossen):
    • Diplom Informatiker
    • Vertiefungsrichtung: Computergrafik
    • RWTH Aachen University
  • Platform: Linux, C++
  • Web: martin-weusten.de
  • Jabber: Jid-martin.weusten.jpg Modrewrite-martin.weusten.gif
(das ist keine EMailadresse, sondern eine Jabberadresse!)