Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

Hauptseminar - Computer Graphics
Topic Map zur Darstellung der Beziehungen
Scanner.
Grundlagen der Geometrie
Graphische Datenverarbeitung IV Dr. Markus Heitz.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
5. Beleuchtung und Schattierung
Phong Shading (Normaleninterpolation)
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
Java3d „Licht und Material“
Ein Seminar in Computer Grafik von Johannes Bochmann
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Special Effects Realistischeres Rendern einer Scene.
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
BSP Binary Space Partitioning
FHP - Fachbereich Bauingenieurwesen
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
Teil 2: Modellierung, Materialzuweisung, Licht(quellen)
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Clustering mittels Grafikprozessor
3D- Spieleprogrammierung
Lichtbrechung Ein Teil des Lichts wird an der Wasseroberfläche
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
Wasser in 3D Die Modellierung und realitätsnahe Echtzeitberechnung von Wasser unter Zuhilfenahme der Grafik Engine OGRE 3D Präsentation von Paul van Hemmen.
How to make a Pixar Movie
Dielektrizitätszahl, Brechungsindex und Ausbreitungsgeschwindigkeit
Inhalt Brechungsindex und relative Permittivität (ehemals „Dielekrizitätszahl“) Brechungsindex und Ausbreitungsgeschwindigkeit Das Snellius-Brechungsgesetz.
Shader.
Reflexion, Brechung und Totalreflexion
4.3 Beleuchtung und Schattierung
4.7 Globale Beleuchtungsmodelle
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Abschlussquiz ©
Geometrie : Rekonstruktion
Medizinische Visualisierung
Camera, Lights, Action… Dirk Primbs Developer Evangelist
Objekte und ihre Beschreibung
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
DAS LICHT.
Visualieren und Animieren
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
U N I V E R S I T Ä T KOBLENZ · LANDAU Arbeitsgruppe Computergrafik 4. Mai / 35 Projektpraktikum AR mit korrekter Beleuchtung Entwicklung einer.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
Bildbearbeitung: Theorie
Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
1. Charakteranimation 2. PlugIns schreiben und laden Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/2011.
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde III: Bildverarbeitung III Köln 8. Januar 2015.
3D Graphics APIs: OpenGL & Fixed Function Pipeline
Die Renderpipeline.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
Grundlagen der Geometrie
1 Acquiring the Reflectance Field of a Human Face Paul Debevec et al.
Minecraft Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen SS 2015 Prof.
 Einführung  Szenengraphen  Bestandteile  Eingabe  JOGL  LWJGL  Beispiele  ARDOR3D Games 04/23/12Ardor 3D – Holzwarth/Kau 2.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Lichtbrechung Warum zeigt ein Regenbogen die Spektralfarben?
Lichtexprimente ls stadttechnik ws 02/03 marco bartsch marco laske lichtsimulation mit software.
Optik Brechung des Lichtes Von Brechung des Lichtes
 Präsentation transkript:

Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken III

Gliederung 1.Was ist ein Shader? 2.Verschiedene Shader 2.1 Vertex-Shader 2.2 Pixel-Shader 3. Einsatzbeispiele 3.1 Per-Pixel-Beleuchtungsmodell 3.2 Realistische Wasseroberflächen

1. Was ist ein Shader? ● Kleines Programm, das einmal pro Vertex oder Pixel aufgerufen wird ● Wird vom Grafikprozessor ausgeführt => sehr schnell

● Geschrieben in speziellen Shader- Assembler-Sprachen ● Seit DirectX 9 innnerhalb einer Effektdatei auch in gewöhnlicher C(++)- Syntax -> High Level Shader Language (HLSL)

● Einsatzgebiet: Aufwändige Spezialeffekte Fixe Rendering-Pipeline wird durch Shadereinsatz selbst definierbar

2. Verschiedene Shader 2.1 Vertex-Shader Beispiel: Glow-Effekt: “Hülle” mit Alpha-Blending in der Glühfarbe Entstehung der Hülle: Jeder Vertex wird entlang seines Normalenvektors verschoben

2.2 Pixel-Shader Meist kleiner als Vertex-Shader => werden öfter aufgerufen Interessant für Per-Pixel Beleuchtung (Bump- Mapping) Darstellung detaillierter Oberflächen (Wasser, Haut)

3. Einsatzbeispiele 3.1 Per-Pixel Beleuchtungsmodell Nachteile des Direct3D-Beleuchtungsmodells: Nur auf Vertexbasis Keine eigenen Lichtberechnungen (Normal-Mapping) Begrenzte Anzahl von Lichtquellen

Multi-Pass-Verfahren Anzahl an Registern bei frühen Pixel-Shader Versionen stark begrenzt => mehrere Durchgänge (Passes) nötig Ambient-Pass Pro Lichtquelle ein weiterer Pass (mit Alpha- Blending)

Single-Pass-Verfahren (spätere Vers.) Einschränkungen der früheren Versionen werden gelockert =>Mehrere Lichtquellen in einem Pass Seperate Pixel-Shader für 1,2,3,4 Lichtquellen Vorteil ggü. Multi-Pass: Vertex-Shader wird nur ein Mal aufgerufen

Normal-Mapping Normalenvektor bestimmt, wie viel Licht eine Oberfläche empfängt x-, y- und z-Komponenten eines Normalenvektors in den drei Farbkanälen der Textur kodieren: Vektor (1,0,-0,5) => Farbe (255,127,63) Transformation der Normalenvektoren in Weltkoordinaten:

3.2 Realistische Wasseroberflächen Wasseroberflächen reflektieren und brechen Licht Je flacher der Einfallswinkel des Lichtstrahls auf die Oberfläche, desto höher der Reflexionsanteil Ansatz: Zwei Render-Targets (Reflexion und Brechung), ein Pixel-Shader Pixel-Shader sampelt beide Render-Targets und rechnet gewichtet nach Lichtanteil zusammen Zufällige Verschiebung der Texturkoordinaten für Welleneindruck

Reflexion Clipping-Ebene: Clipping-Ebene an der Wasseroberfläche Vertex-Shader übergibt Entfernung jedes Vertex zur Clipping-Ebene an Pixel-Shader Wenn Wert <0: Pixel wird verworfen (s. HLSL- Funktion clip )

Spiegelung: Transformationsmatrix: D3DXMatrixReflect Culling-Modus umkehren: D3DCULL_CCW auf D3DCULL_CW Spiegelung der sichtbaren Objekte und Lichtquellen Alpha-Kanal des Render-Targets: Entfernung des Pixels zur Wasseroberfläche

Brechung Entfernung zur Clipping-Ebene >0: Verwerfen Stauchung der Szene entlang der y-Achse mit Wasseroberfläche als Zentrum Auch alle Lichtquellen stauchen Alpha-Kanal: Entfernung zur Oberfläche Trübheitseffekt mit Nebel; Nebelstärke abhängig von der Teilstrecke Wasseroberfläche-Pixel

Zusammenfügen der Szenen Wasseroberfläche aus zwei Dreiecken Pixel-Shader berechnet Winkel zwischen Normalenvektor und Verbindungsvektor Kamera- Pixel Sampeln der Render-Targets mit vPos. Welleneindruck durch Verschiebung der Koordinaten anhand einer Normal-Map

Alpha-Kanal des Pixels als Faktor für Verschiebung durch die Wellen Reflektierte und gerenderte Szene mit leicht vergrößertem FoV rendern zur Vermeidung von Fehlern am Rand Glitzern auf Wasseroberfläche durch Specular Highlighting mit hoher Glanzkraft

Weiterführende Infos zu Shadern im DirectX-SDK, auf msdn.microsoft.com oder in der DirectX- Dokumentation Vielen Dank für die Aufmerksamkeit!