SlimDX - Simple VertexShader  
 Kategorie: SlimDX
 Autor: Sascha Bajus
 IDE: VB.Net 2008
 Framework: 2.0
 Anspruch: 60%
 Sprache: Deutsch
 Sonstiges: Code ist entsprechend kommentiert
Beschreibung
Dieses Projekt zeigt die Einbindung eines Effektfiles und die Benutzung von Vertex  Deklarationen in Verbindung mit Shadern. Der Shader kann aktiviert und deaktiviert werden um die Veränderungen deutlich zu machen.
Shader Einleitung
Um in DirectX Textureffekte zu erstellen, wurde die FFP (Fixed Function Pipeline) benutzt. Sie beinhaltet verschiene in der Hardware implementierte Effekte. Dadurch werden die Berechnungen unglaublich schnell abgearbeitet. Leider ist die FFP nicht sehr flexibel und in ihren Möglichkeiten beschränkt.
Um alles flexibel zu gestalten beinhalten moderne Grafikkarten Shadereinheiten. Dies sind kleine Rechenwerke, die frei programmierbar sind und somit keiner festen Struktur unterliegen. Bei den Möglichkeiten der Berechnung sind der Phantasie keine Grenzen gesetzt. In den Anfängen wurden Shader in Assembler geschrieben. Aber durch die ständige Weiterentwicklung wurde eine eigene Sprache erschaffen, die HLSL (High Level Shader Language).
Arbeitet man mit Shadern, ist es sinnvoll keine FVF Codes für die Vertexdaten zu benutzen. Die Neuerung ab DirectX 9 nennt sich Vertex Declarations, über die sich mit verschiedenen Vertex-Elementen ein VertexStream erstellen lässt, der keine feste Vorgabe hat. Damit der Shader die Daten im Stream finden kann, wurden „Semantics“ eingeführt.
Da alle Vertexdaten über den Shader laufen, wird auch keine Transformation der Daten durchgeführt. Um das Objekt aber später sehen zu können, muss dieses in den Worldspace. Damit wir wissen wie und wo wir auf das Objekt schauen, fehlt noch der Viewspace. Daraus ergibt sich die WordviewProjektion – Matrix, die die Vertexdaten im Shader transformiert.
Aufbau des Effektfiles
Der Shadercode liegt in der Regel nicht in der Applikation, sondern in einem externen Effektfile.
Zur Laufzeit wird der Effektfile geladen und bei bedarf kompiliert und ausgeführt. Die Applikation gibt die Vertexdaten an den Shadereingang. Der Verarbeitet die Daten und gibt diese wieder zurück. Das Format der Eingangs- und Ausgangsdaten muss dabei nicht gleich sein. Es spielt auch keine Rolle woher die Daten kommen oder wohin Sie gehen.
Der Effektfile besteht aus 4 Teilen:
Deklaration Dort werden alle Variablen und die Ein- und Ausgangsstruktur der 
Vertexdaten festgelegt
Vertexshader Der Vertexshader verarbeitet alle Vertexdaten des Streams
Pixelshader Der Pixelshader verarbeitet die Farbdaten per Pixel
Technik Dort wird der Shader kompiliert und ausgeführt
Der einfache VertexColorshader
Die Funktionsweise des Shaders ist recht simpel. Der Effektfile besteht aus einem VertexShader und besitzt keinen PixelShader. Der Eingangsstream beinhaltet nur die Position der Verticen. Der Ausgangsstream besteht aus Position und Color. Der Vertexshader gibt jedem Vertex einen neuen Farbwert. Die Farbwerte werden aus der Applikation an den Shader übergeben
Die Funktionsweise des Shaders ist recht simpel. Der Effektfile besteht aus einem VertexShader und besitzt keinen PixelShader. Der Eingangsstream beinhaltet nur die Position der Verticen. Der Ausgangsstream besteht aus Position und Color. Der Vertexshader gibt jedem Vertex einen neuen Farbwert. Die Farbwerte werden aus der Applikation an den Shader übergeben
Hinweis
Um dieses Projekt ausführen zu können, muss VB.Net 2008, die sdxBaseEngine und die SlimDX-Runtime installiert sein. Haben Sie Fragen zu einem Projekt, wenden Sie sich bitte immer zuerst an den entsprechenden Autor. Für weitere Fragen zu Visual Basic SlimDX nutzen Sie bitte unser DirectX-Forum.
 
Betriebssystem
Win ME
Win NT
Win 2000
Win XP
Win Vista
Windows 7


Download  (60 KB) Downloads bisher: [ 432 ]

Zum Seitenanfang

Startseite | Projekte | Tutorials | VB-/VBA-Tipps | API-Referenz | Komponenten | Bücherecke | VB.Net-Forum | VB-/VBA-Forum | DirectX-Forum | Foren-Archiv | VB.Net | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 5. Dezember 2010