Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Ähnliche Dokumente
Seminar Game Development Game Computer Graphics. Einleitung

Thema: Hardware-Shader

Jörn Loviscach Hochschule Bremen

Eine Einführung Computergrafik SS14 Timo Bourdon

Softwareprojekt Spieleentwicklung

Seminar: Grafikprogrammierung

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

OpenGL. (Open Graphic Library)

Rendering Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

GPU Programmierung. Thorsten Grosch

Grafikkarten-Architektur

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

GPU Programmierung. Thorsten Grosch

Non-Photorealistic Rendering

Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen

Überblick Echtzeit-Rendering. Uwe Domaratius

Computer Graphics and Animation in Games

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe

Vergleich von Forward und Deferred Rendering

Grundlagen der Spieleprogrammierung

Praktikum: Spieleengine im Eigenbau


Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Asteroids3D Seminar: Game Programming. Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

Computergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester Version: 24. März 2014

Universität Augsburg. 20. April B. Möller (U. Augsburg) Computergraphik SS April / 6

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Seminar: Programmierung von Grafikkarten (SS 2006)

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006

Kapitel 5: Graphikhardware und Parallelisierung

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Lehrstuhlseminar. NVidia Tegra-Architektur. Andreas Höer. TU Dresden,

Inhaltsverzeichnis. V Vorwort 17. V.1 An wen richtet sich dieses Buch? 18. V.2 Ansprüche an den Computer 18. V.4 Bildergalerie 19.

Shader für Geometrische Grundprimitive. Beispielszene mit vielen Kegeln unterschiedlicher Größe und Farbe

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum

Eine Einführung in die Architektur moderner Graphikprozessoren

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

Teil III. Grundlagen der Computergrafik

Grundlagen der Spieleprogrammierung

Real-Time High-Dynamic Range Texture Mapping

4. Mensch-Maschine Schnittstellen

OpenGL als API für Augmented und Virtual Reality

GPGPU mit NVIDIA CUDA

Grafik- Programmierung

Grafikkarten. Institut für Informatik, LMU München Seminar: Medientechnik, SoSe 2003 LS Prof. Hussman Referentin: Milena Velikova

Games Engines. Realtime Terrain Rendering

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

OpenGL und DirectX. OpenGL und DirectX

Gameprogramming WS2013/14 Futurella von Pavel Belskiy und Felix Niemeyer Betreuer: Stefan Buschmann

Entwicklung eines Partikelsystems auf Basis moderner 3D-Grafikhardware

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze

Friedrich Hoermann Hauptseminar Grafikprogrammierung. Grundlagen und Aufbau einer Grafikkarte

Seminar - Paralleles Rechnen auf Grafikkarten

Terrain Rendering mit Hardware Tessellation unter DirectX 11

D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen

Automatisch-generierte Texturen aus Laserpunktwolken

MF Breadcrumbs. Sergej Schefer & Fabian Marx

Computer Graphik I Intro

Kunst der Spieleprogrammierung. The END. Playful Design. (c) 2013, Peter Sturm, Universität Trier

Die Elemente einer Szene werden in einer Graphstruktur gespeichert

Grafikprogrammierung (Echtzeitrendering)

Aktuelle Entwicklungen in der Echtzeit Computergrafik

Computergrafik Universität Osnabrück, Henning Wenke,

Was sind Computerspiele? (c) 2013, Peter Sturm, Universität Trier

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

OpenGL vs. Direct3D Ein 3D-API Vergleich

Plan für heute. Vorlesungstermine. CG1 & CG2 Vorlesungsthemen. Anwendungsgebiete. Warum Computer Grafik? Computergrafik 1&2 SS 2010

Eine interaktive Beispielanwendung unter Verwendung aktueller Renderingeffekte. Bachelorarbeit

COPE COuPled Evolution of metamodels and models

Architektur von Game-Engines

VECTOR TILES DIE ZUKUNFT VON WEBGIS?

Volumen Visualisierung

Texture Based Direct Volume Rendering

Dipl. Inf. (FH) Thomas Obermaier Freier Softwareentwickler Kapellenstraße Gutenberg. Lebenslauf. Geburtstag. 1. Dezember 1981.

COMPUTERGRAFIK 2014 UNIVERSITÄT OSNABRÜCK. Niels Meyering

Computer Graphik. Mitschrift von

Aktuelle Grafikleistungen

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Einführung in GLSL - OpenGL Shading Language. Athanasios Karamalis

Rendering für Augmented Reality

Out-of-Core Techniken

Computergrafik - Projekt

How to make a PIXAR movie? WS 2012/2013

Protected User-Level DMA in SCI Shared Memory Umgebungen

Ziele und Tätigkeiten von Architekten

Programmieren mit DirectX

Eidesstattliche Erklärung

C A R L V O N O S S I E T Z K Y. Wavefront OBJ Format. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

Frameworks: Agenda. Aufgabe von Medien-Frameworks. Microsoft DirectX SDL. Microsoft Windows Media Java Media Framework

Datenblatt: TERRA PC-GAMER Zusätzliche Artikelbilder IT. MADE IN GERMANY.

Jeder Flächentyp erfordert seine eigenen Modellierungstechniken, die als Set zu diesen Typen gruppiert sind.

Vorlesung OpenGL mit Java von Prof. Dr. W. Kowalk / Übung bei Malte Mathiszig

Projektarbeit Computergraphik. DirectX vs. OpenGL. Fachbereich: 12. Informatik Betreut durch Prof. Dr. Xiaolin Zhou von

Modellbasierte und komponentenorientierte Programmierung von Steuerungen

Modellierung von 3D Wolken auf Basis von 2D Bewölkungsdaten und Rendering mittels Rastergrafik

Interaktives Motion-Capturing zur Echtzeitanimation virtueller Agenten

Client-Server Strategien zur Visualisierung komplexer Sachverhalte in Digitalen Dokumenten der Chemie

Verteiltes Rendering: Herausforderungen und Lösungsansätze

Transkript:

Diplomarbeit 5HDO7LPH6SHFLDO (IIHFWV Neue Möglichkeiten durch programmierbare Shader Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Betreut von: Paul Grimm, Ralf Dörner Beginn: 01.04.02 Abgabe: 30.09.02 1

Gliederung des Vortrags: 1. (LQI KUXQJLQGLH7KHPDWLN 2. 0HLQH9RUJHKHQVZHLVH 3. (UJHEQLVVH 4. $XVEOLFN 5. )HHGEDFN 1. (LQI KUXQJLQGLH7KHPDWLN 2

Neue Grafikkarten-Generation *H)RUFH von 19,',$ Shader-Programme Erstmals können Teile des Hardware-Rendering- Prozesses SURJUDPPLHUW werden. Diese Programme nennen sich 6KDGHU. Shader werden vollständig auf der GPU ausgeführt. Vorteil: Mehr Flexibilität bei vollständiger Hardware-Beschleunigung 3

Shader-Programme (2) Programmierbar sind ]ZHL.RPSRQHQWHQ der Rendering-Pipeline 9HUWH[6KDGHU 3L[HO6KDGHU Beeinflusst die Verarbeitung auf Vertex-Ebene Beeinflusst die Verabeitung auf Pixel-Ebene Vertex Data High-Order Primitive Tesselation Vertex Shader Transform. & Lightning Clipping, Culling, Viewport Mapping, Rasterization GeForce3 Rendering Pipeline [NVID02] Pixel Shader Multi- Texturing Fog Blending Alpha, Stencil & Depth Testing Frame Buffer Blending 4

Einige Eigenschaften: 6KDGHU VLQG)XQNWLRQHQ: 9HUWH[/3L[HO 6WUHDP 6KDGHU 7UDQVIRUPLHUWH 9HUWLFHV3L[HO 6KDGHU N QQHQNHLQH'DWHQHU]HXJHQ, VRQGHUQQXUWUDQVIRUPLHUHQ Einige Eigenschaften (2) 6KDGHU VLQG]XVWDQGVORV Die Ausführung eines Shaders für ein Fragment ist also unabhängig von vorherigen Berechnungen. 6KDGHU3URJUDPPHVLQGOLQHDU Verzweigungen im Ausführungspfad sind nicht erlaubt. 5

Ziel der Arbeit 'HPRQVWUDWLRQGHU/HLVWXQJVIlKLJNHLW von Vertex- und Pixel-Shadern (durch Entwicklung von Effekt-Prototypen), und %HZHUWXQJ dieser neuen Technik 2. 0HLQH9RUJHKHQVZHLVH 6

Drei Schritte 1. Verschiedene Studien zur Aneignung von Basiswissen 2. Entwicklung einfacher Prototypen 3. Dokumentation der Zwischenergebnisse Studie über Real-Time-Rendering: Wie sah Hardware-Beschleunigung bisher aus? Welche Spezialeffekte waren bisher möglich? Welche Ansätze für programmierbare Grafik- Architekturen gab es bisher? 7

Studie über Shader-Sprachen Welche Shader-Sprachen gibt es? Wo liegen die Unterschiede/Gemeinsamkeiten? Fokus auf Shader-Sprachen für Real-Time Rendering Studie über Vertex- und Pixel-Shader Wie ist die GeForce3 aufgebaut? Wie funktionieren 9HUWH[- und 3L[HO6KDGHU? Wie wurden die Shader-Sprachen in DirectX8 und OPENGL implementiert? 8

Studie über Shader-Demos Welche neuen Effekte wurden bisher mit der neuen Technik realisiert? Wie wurden diese Effekte realisiert? Demos im Nvidia Effects-Browser Beispiele: Sinuswellen Deformation Fell mit Per-Pixel-Lightning Toon Shading, Rainbow Rendering Lichtbrechung 9

Entwicklung einfacher Prototypen Programmiersprache: C++ API: DirectX8.1 Grafikkarte: GeForce3 1. Entwicklung von Prototypen auf Basis H[LVWLHUHQGHU Shader-Demos 2. Entwicklung HLJHQHU Effekte (vom Entwurf bis zur Implementierung) 3. (UJHEQLVVH 10

Entwickelte Prototypen Einfache Effekte (Lichtbrechung, Deformation, Morphing, Cartoon-Shading) Gras-Simulation Wasser-Simulation Simulation von Gras 11

Gras Bewegung durch Rotation von Vertices Stark vereinfachte Beleuchtungsrechnung Steuerung durch Parameter: Windrichtung Stärke Frequenz und Amplitude der Windschwankung Gras (Besonderheiten) Selektion von Vertices durch neues Attribut relative Höhe (=: +U. Vertices werden rotiert (~ +U ) Relative Höhe Keine Rotation 12

Simulation von Wasser Wasserfläche: Wasser 2x Per-Pixel Environment-Mapping (ein Textur für Spiegelung, eine für Brechung) Bewegung: Überlagerung Sinusfunktionen verschiedener Amplituden, Frequenzen und Phasen Hohe Frequenzen: Bump Map Niedrige Frequenzen: Transformation von Vertices 13

Ergebnisse der Studien & Dokumentation 1(*$7,9 Vertex- und Pixel-Shader sind sehr aufwendig zu programmieren (Low-Level Assemblersprache) Nicht abstrakt genug: Jede GPU mit Shadern besitzt z. Z. seine eigene Pixel-Shader-Version 1(*$7,9 (Fortsetzung): Beschränkte Möglichkeiten aufgrund knapper Ressourcen (Programmlänge und Register sind zu knapp bemessen) Shader sind QLFKWNRPELQLHUEDU. Es darf immer nur ein Vertex- und ein Pixel-Shader aktiv sein. 14

1(*$7,9 (Fortsetzung): Starke Bindung zwischen Applikation und Shader- Programmen erschwert Lesbarkeit, Wartbarkeit und Portabilität beider Programmteile Gegenteil zu Information Hiding 326,7,9 Deutlich flexiblere Rendering-Pipeline mehr Raum für Kreativität Shader-Sprachen sind eleganter erweiterbar, als das alte Steuerungssystem über Flags und Zustände 15

326,7,9(Fortsetzung): Schritt in die richtige Richtung: Kommende GPU-Generationen werden die Restriktionen sukzessive aufweichen. 4. $XVEOLFN 16

Die nächsten drei Monate Prototyp-Entwicklung: Verfeinerung der Gras- und Wassersimulation Entwicklung nicht-photorealistischer Schattierungsverfahren Prototypische Architektur zur Kombination verschiedener Shader-Effekte Weitere Ideen? (Æ Feedback) Die nächsten drei Monate (2) Bewertung: Diskussion der gemachten Erfahrungen Aufzeigen von Schwächen/Verbesserungsvorschläge Leistungsvergleich mit Off-Line-Techniken (z.b. mit 5HQGHU0DQ von PIXAR), Ausblick auf Kommendes: prozedurale Sprache &Jvon NVIDIA, 'LUHFW; 17

5. )HHGEDFN Vielen Dank für eine halbe Stunde Aufmerksamkeit und für Anregungen zum weiteren Verlauf der Arbeit! 18