Computer Graphics Shader

Slides:



Advertisements
Ähnliche Präsentationen
Microsoft® Office Excel® 2007-Schulung
Advertisements

Übersicht Anzeigegeräte Framebuffer Grundlagen 3D Computergrafik
Einführung in die Bildverarbeitung
Hauptseminar - Computer Graphics
3. 3D-Betrachtungstransformationen
• • • • • 3.2 Die projektive Erweiterung des E³
Seminar „Extrapolationsmethoden für zufällige Felder“
Grundlagen der Geometrie
3.2 und 3.2.1: Räumliches Sehen und Koordinaten und Vektoren
Lisa Gorkin, Barbara Herzgen, Fabian Küpper, Ailar Tehrani HG13 Köln / Steckkarten / Schnittstellen Hardwareprojekt.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Bilder und Rasterdaten
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
Kapitel 4 Geometrische Abbildungen
Geometrie. Geometrie 6. Ebene Geometrie Ein Punkt ist, was keinen Teil hat. Euklid ( ) Gerade analytisch: y = mx + c y(0) = c y(1)
Oliver Rahner – Hauptseminar Computer Graphics, SS 2007 computer graphics & visualization DirectX 10 API Neuerungen in Direct3D 10.
Java3d „Licht und Material“
Ein Seminar in Computer Grafik von Johannes Bochmann
EXCAVE ein 3D-Modell eines archäologischen Grabungsquadranten
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Special Effects Realistischeres Rendern einer Scene.
Computergrafik Begriff: Was ist Computergrafik?
Wie macht man ein Sudoku? Transformations-Methode:
BSP Binary Space Partitioning
FHP - Fachbereich Bauingenieurwesen
Computergraphik mit OpenGL Einführung. Bilder Objekt existiert im Raum unabhängig vom Betrachter Objekte sind beschrieben durch die Position verschiedener.
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
§24 Affine Koordinatensysteme
XNA 3D Tutorial Anzeigen eines Objektes. Inhalt Lernen Sie, wie Sie Modelle implementieren. Initializing Lernen Sie, wie Sie Modelle aus der Content Directory.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Computergrafik - Inhalt
3D- Spieleprogrammierung
Woraus besteht eine PPT-Datei?
Lisa Gorkin, Barbara Herzgen, Fabian Küpper, Ailar Tehrani HG13 Köln / Steckkarten / Schnittstellen Hardwareprojekt.
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Folie 1 Kapitel IV. Matrizen Inhalt: Matrizen als eigenständige mathematische Objekte Zusammenhang zwischen Matrizen und linearen Abbildungen Produkt von.
Shader.
Anti-Aliasing Kantenglättung.
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Verhalten von Objekten in der Szene
Nächste Folie Für eine Präsentation möchte ich Bilder so animieren, dass zuerst Text angezeigt wird, zum Text sollte anschließend ein passendes Bild erscheinen.
Camera, Lights, Action… Dirk Primbs Developer Evangelist
ProSeminar WS 2007/08 Leo Hackstein
LOD Levels of Detail Oliver Gassner Christian Troger.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Präsentation der Diplomarbeit:
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
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.
Schaltfläche-Star 1 Schaltfläche Star. Schaltfläche-Star 2 Beispiel Star Erstellen eines grünen Rechtecks: Hintergrund auf Größe 200x50 Pixel minimieren,
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.
Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.
Der Begriff Grafik Computergrafik ist die Erstellung und Verarbeitung von Grafiken mit Hilfe eines Computers. Hierzu benötigt man: Eingabegeräte wie zum.
AGP, PCIE Bus im Vergleich AGP: Accelerated Graphic Port 1997 von Intel entwickelt. Ab 1998 AGP dann in großem Stil in PCs als Grafikkartensteckplatz verwendet.
3D Graphics APIs: OpenGL & Fixed Function Pipeline
Die Renderpipeline.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Proseminar – Computer Graphics Nikolaos Tsanakas computer graphics & visualization OpenGL Shading Language.
Grundlagen der Geometrie
Funktionen Buffer Kathrina Schmidt Die Funktion Buffer (die „Pufferzone“ um räumliche Objekte) von Kathrina Schmidt.
COLLADA II Digital Asset Schema Release Anike Schulz Reusable Content in 3D und Simulationssystemen Prof. Thaller.
Aufbau und Funktion von 3D- Grafikkarten von Christian Reis.
© Tobias Bäuerle, Virtuelle Präsenz WS10/11, Uni Ulm Übung Second Life Techniken.
Proseminar Geoinformation II WS 03/04
Thema Aussage SmartArt-Grafik mit Bildern auf rotem Hintergrund
 Präsentation transkript:

Computer Graphics Shader Hiermit möchte ich Sie Herr Professor Encarnacao, Herr Professor Stürzlinger und Prüfungskomitee, sowie meine Familie und Freunde und natürlich alle Kollegen ganz herzlich zu meinem Dissertationsvortrag begrüßen. Das Thema meiner Dissertation lautet: Verformungsmodellierung durch kombinierte Simulationsverfahren.

Inhalt Shader Pipeline Texturen 3D Räume Memory Resources Beispiel Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger Texturen Mipmaps Koordinaten Filtering 3D Räume Object Space World Space View Space Projection Space Screen Space Shader Beispiel

Pipeline Drei programmierbare Stufen Vertex-Shader Geometry-Shader Pixel-Shader Alle anderen Stufen sind nur über Zustände einstellbar Quelle: [DX07]

Memory Resources Symbolisiert den Arbeitsspeicher der Grafikkarte Ressourcen: Vertex Buffer Index Buffer Texturen Shaderkonstanten Stateblocks ... Stateblocks werden unterteilt in: Rasterizer States Depth-Stencil States Sampler States Blend States Quelle: [DX07]

Input-Assembler Liest Daten aus einem Index Buffer und ein oder mehreren Vertex Buffern Setzt die gelesenen Daten zu Primitiven zusammen (assemble): Linien Dreiecken ... Fügt systemgenerierte Daten hinzu, z.B. Vertex ID Gibt die Daten an die Pipeline weiter Quelle: [DX07]

Vertex-Shader Bearbeitet die vom Input Assembler übergebenen Vertices Daraus folgt, dass der Vertex-Shader für jeden Vertex einmal ausgeführt wird Zu den Aufgaben gehören: Transformation der Position Bearbeitung der Texturkoordinaten Per Vertex Lichtberechnungen Displacement Mapping ... Quelle: [DX07]

Geometry-Shader & Stream-Output Bearbeitet die vom Vertex-Shader ausgegebenen Vertices, die zu Primitiven zusammengesetzt werden Der Geometry-Shader wird für jedes Primitiv (Linie, Dreieck, ...) einmal ausgeführt Der Geometry-Shader kann Geometrie hinzufügen bzw. aus der Pipeline entfernen (limited geometry amplification und de-amplification) Über den Stream-Output können Geometrie Daten in die Memory Resources geschrieben werden Diese Vorgang unterbricht nicht die Pipeline, sondern findet parallel dazu statt Quelle: [DX07]

Rasterizer Zuständig für „Clipping“ Abbilden auf den Viewport Rasterung in Pixel Interpolation der Vertex Daten Reicht die interpolierten Daten an den Pixel-Shader weiter Quelle: [DX07]

Pixel-Shader Bearbeitet die vom Rasterizer übergebenen Pixel Der Pixel-Shader wird für jeden Pixel einmal ausgeführt Zu den Aufgaben gehören: Color Transformationen Per Pixel Lichtberechnungen Texturen samplen Bump Mapping Evtl. Tiefenwert bearbeiten ... Quelle: [DX07]

Output-Merger Kombiniert die vom Pixel-Shader ausgegebenen Farben mit den bereits vorhanden Farben des Buffers (Blending) Schreibt den neuen Wert auf den Buffer Quelle: [DX07]

Texturen Ansammlung von “Texel“ Ein Texel bildet die kleinste Einheit einer Textur Besteht aus 1 bis 4 Komponenten (je nach Format: RGBA, R, GR, ...) Texturen können im Shader „beliebig“ oft gelesen (fetch oder sample) werden Es existieren vier verschiedene Textur-Typen: 1D-Texturen 2D-Texturen 3D-Texturen (Volumetextures) Cubemaps

Mipmaps Stammt aus dem lateinischen „multum in parvo“, bedeutet übersetzt soviel wie „Viel in Kleinem“ Bilden eine Anreihung von Texturen, bei der jede Folgetextur immer das gleiche Bild repräsentiert Mit jedem neuen Mipmap-Level wird die Auflösung der Textur halbiert Die Grafikkarte kann feststellen welcher Mipmap-Level die nächste Auflösung zur gewünschten Ausgabe besitzt Verringert Aliasing und erhöht damit die Bildqualität Erhöhter Speicherverbrauch

Texturkoordinaten Zum Adressieren einer Textur werden je nach Typ 1 bis 3 Koordinaten benötigt Die Koordinaten werden meistens als u, v und w bezeichnet Linear adressiert von: 0 bis 1 bei 1D-Texturen (0, 0) bis (1, 1) bei 2D-Texturen (0, 0, 0) bis (1, 1, 1) bei 3D-Texturen Unterschied zwischen DX9 und DX10 in der Adressierung. Unter DX10 befindet sich der erste Texel auf der Koordinate (0, 0) Quelle: [DX07] Quelle: [AMD07]

Filtering In den meisten Fällen wird die Textur beim Lesen „magnified“ oder „minified“ Magnification: Mehrere Pixel werden auf einen Texel abgebildet Ergebnis ist grob Lösung durch Linear- bzw. Bilinear-Filtering Minification: Ein einzelner Pixel wird auf mehrere Texel abgebildet Ergebnis besitzt starkes Aliasing Lösung durch Mipmap-Filtering Quelle: [DX07]

3D Räume Object Space World Space View Space Projection Space Screen Space

Object Space & World Space Oft Model Space genannt Wird bevorzugt zur Erstellung der Objekte verwendet Objekt wird um den Nullpunkt erstellt, dadurch können Transformationen (z.B. Rotation) leichter ausgeführt werden World Space Raum den sich alle Objekte teilen Modelle Licht Kamera ...

View Space Auch oft Camera Space genannt Bestimmt die äußeren Kameraeinstellungen Position und Ausrichtung Die Kamera bildet den Ursprung im View Space Die Ausrichtung der Kamera bildet die z-Achse des View Space World Space View Space Quelle: [DX07]

Projection Space & Screen Space Bestimmt die inneren Kameraeinstellungen Field of View, Near Clip Plane und Far Clip Plane Führt eine perspektivische Transformation bzw. Projektion aus Objekte näher an der Kamera erscheinen größer als weiter entfernte Objekte Objekte werden anhand ihrer Entfernung zur Kamera (z-Wert im View Space) transformiert View Frustum wird auf einen „Einheitswürfel“ abgebildet In diesem besitzen alle sichtbaren Objekte: x- und y-Werte zwischen -1 und +1 z-Werte zwischen 0 und 1 Screen Space Bestimmt die Position auf dem Frame Buffer Die linke, obere Ecke bildet den Ursprung mit der Koordinate (0, 0) Der letzte Punkt im Raum wird durch Koordinate (w-1, h-1) definiert, wobei w die Breite des Frame Buffers und h die Höhe des Frame Buffers (in Pixel) angibt Positive x-Achse verläuft nach rechts Positive y-Achse verläuft nach unten

Shader Eingabedaten werden in zwei Kategorien unterteilt: Varying Inputs: Variieren für jeden Vertex bzw. Pixel Per Vertex Daten: Position, Normale, Texturkoordinaten, ... Per Pixel Daten: Texturkoordinaten, Normale, ... Werden über spezielle Eingaberegister an den Shader übergeben Uniform Inputs: Sind für alle Vektoren, Pixel und Primitive gleich und variieren beim Durchlaufen der Pipeline nicht Shaderkonstanten Lichtposition Kameraposition Transformationsmatrizen ... Texturen Ausgabedaten werden über spezielle Ausgaberegister an die Pipeline weitergegeben

Beispiel

Quellen [DX07] Direct X Documentation 2007 [AMD07] Harnessing the Power of DirectX 10