OpenGL und die Fixed-Function-Pipeline
|
|
- Erika Schräder
- vor 6 Jahren
- Abrufe
Transkript
1 OpenGL und die Fixed-Function-Pipeline Proseminar Game Design WS 07/08 Jan-Hendrik Behrmann Einführung In modernen Computerspielen hat sich inzwischen die Darstellung der Spielwelt in dreidimensionaler Grafik durchgesetzt. Dabei zeigt der Trend noch immer in Richtung einer immer realistischeren Abbildung der Wirklichkeit, gleichzeitig soll die Grafik möglichst flüssig laufen. Die dazu notwendigen Berechnungen werden von spezialisierter Hardware übernommen, die heute auf der Grafikkarte in nahezu jedem PC verbaut ist. Um diese Hardware nutzbar zu machen bedarf es einer Software-Schnittstelle, die der Spieleprogrammierer nutzen kann. In den letzten Jahren haben sich zwei dieser Schnittstellen durchgesetzt: DirectX und OpenGL. Im Folgenden soll es um OpenGL und die darunterliegende Rendering-Pipeline gehen. OpenGL Die Open Graphics Library (kurz OpenGL) ist eine Spezifikation einer Programmierschnittstelle (API) zur Programmierung von 3D-Grafik-Anwendungen. Sie wurde von Silicon Graphics Inc. (heute SGI) im Jahr 1992 entwickelt und veröffentlicht. Die OpenGL zeichnet sich dadurch aus, dass sie nicht an bestimmte Hardware oder an ein bestimmtes Betriebssystem gebunden ist. Sie ist als Low-Level-API konzipiert, bietet dem Programmierer also nur sehr grundlegende, nahe an die Hardware angelehnte Funktionen. Die Spezifikation sieht vor, dass eine Implementierung der API alle in der Spezifikation vorgesehenen Funktionen implementieren muss und diese, wenn sie nicht von der Hardware unterstützt werden, notfalls in Software emulieren muss. Der Programmierer kann sich also auf einen verbindlichen Leistungsumfang verlassen, freilich zu dem Preis, dass es passieren kann, dass seine Anwendung sehr langsam läuft, weil ein genutztes Feature auf einer Hardware nicht unterstützt wird und emuliert werden muss. Da die technische Entwicklung im Bereich der 3D-Grafik sehr rasch voranschreitet, muss die Library ständig erweitert und gepflegt werden. Diese Aufgabe hat das Architecture Review Board (ARB) übernommen, ein Industriekonsortium, das 1992 extra zu diesem Zweck gegründet wurde. Mitglied im ARB sind neben SGI weitere einflussreiche Unternehmen der Branche, etwa NVIDIA, AMD/ATI, Intel und weitere. Seit September 2006 ist das ARB eine Untergruppe der Khronos Group, ein Konsortium, das sich der Entwicklung freier Multimediastandards verschrieben hat. Die Fixed-Function-Pipeline Um dreidimensionale Welten auf dem üblicherweise zweidimensionalen Bildschirm wiedergeben zu können (oder in einer Grafikdatei zu speichern), müssen die Daten speziell aufbereitet werden. Die Abfolge der einzelnen Verarbeitungsschritte ist dabei immer dieselbe. Diese Kette von Verarbeitungsschritten bezeichnet man als Rendering-Pipeline. Eine Pipeline bezeichnet dabei eine sequentielle Anordnung von Prozessen, wobei der Output des einen der Input des nächsten Verarbeitungsschrittes ist. Ihre besonderen Vorteile
2 liegen darin, dass sie sich durch ihren festen Ablauf einfach in Hardware implementieren lässt und durch die Anordnung mehrerer Rendering-Pipelines auf der Grafikhardware eine hohe Parallelisierung erreicht werden kann. Damit lässt sich ein hoher Geschwindigkeitsvorteil gegenüber der Berechung auf einer Standard-CPU erreichen. Vor der Version 2.0 benutze OpenGL ausschließlich die sogenannte Fixed-Function-Pipeline. In ihr war die Funktion aller Verarbeitungsschritte fest vorprogrammiert und nur über die Einstellung einiger weniger Parameter zu beeinflussen. Ab der Version 2.0 ist die Pipeline in Teilen über sogenannte Shader-Programme programmierbar. Zur Veranschaulichung des Rendering-Prozesses soll uns die Fixed-Function-Pipeline genügen. Der Rendering-Prozess Die Abbildung zeigt die Rendering-Pipeline in stark vereinfachter Form. Die tatsächliche Pipeline von OpenGL ist viel umfangreicher, würde aber den Rahmen dieser Arbeit sprengen. Zunächst müssen wir wissen, wie OpenGL intern Grafikobjekte beschreibt. Es beschreibt sie als eine Liste von Vertices, die zusammen einen Primitiv ergeben. Per-Vertex Operations Diese Übersicht zeigt die von OpenGL unterstützten Primitive, darunter als Einfachstes eine Punktmenge, Linien, aber auch komplexe Objekte wie Polygone. Am Beispiel des Dreiecks erkennen wir, dass die Vertices die Eckpunkte der Primitive beschreiben. Sie speichern neben den Raumkoordinaten aber auch Farbwerte, Texturkoordinaten und andere Informationen. OpenGL schickt dabei jeden übergebenen Primitiv unverzüglich einzeln durch die Pipeline. Im ersten Verarbeitungsschritt werden alle übergebenen Vertices einzeln wie folgt verarbeitet: Sie werden im dreidimensionalen Raum platziert (Model Transformation). Ihre Koordinaten werden in Kamerakoordinaten umgerechnet (Viewing Transformation). Es werden Beleuchtungsinformationen für jeden Vertex erstellt (Lighting). Sie werden auf zweidimensionale Koordinaten projiziert (Projection Transformation).
3 All diese Schritte werden durch Multiplizierung der Koordinaten, die man als Vektoren auffasst, mit speziellen Matrizen realisiert. Model Transformation Häufig benutzt man bereits vorgefertigte 3D-Modelle für seine Szene. Diese liegen aber nur in ihrem lokalen Koordinatensystem vor. Darum müssen diese Koordinaten in das Weltkoordinatensystem der Szene überführt werden (s. Abbildung). OpenGL bietet dazu vorgefertigte Transformationsmatrizen für das Verschieben, Skalieren und Drehen eines Objekts. Viewing Transformation Als nächster Schritt erfolgt die Viewing Transformation. Dabei werden alle Weltkoordinaten in Kamerakoordinaten umgerechnet. Das ist deswegen erforderlich, weil die Kamera zwar frei im Raum positioniert werden kann, es aus mathematischer Sicht aber wünschenswert ist, wenn sich die Kamera im Ursprung des Koordinatensystems befindet und die Tiefenachse hinunterblickt (OpenGL nutzt ein rechtshändiges Koordinatensystem). Die dazu notwendige Matrix wird über eine spezielle Funktion erzeugt. Lighting An dieser Stelle werden nun für jeden Vertex abhängig von den Lichtquellen im Raum Beleuchtungsinformationen nach dem Phong-Modell berechnet. Für eine genauere Beschreibung sei auf den Vortrag zu diesem Thema verwiesen. Projection Transformation Nun müssen die Vertices auf die zweidimensionale Ebene projiziert werden. Dazu gibt es zwei Verfahren: Die orthogonale und die perspektivische Projektion. Die perspektivische Projektion ist dem menschlichen Auge ähnlich. Das Sichtfeld des Auges kann als Kegel angesehen werden, der seine Spitze am Auge hat und von dort aus immer breiter wird. Bei OpenGL ist es ähnlich, nur bedient man sich hier eines Pyramidenstumpfes, des sogenannten Frustums.
4 Das Sichtfeld der Kamera wird also als eine Pyramide aufgefasst. Zum Stumpf wird sie dadurch, dass man die Pyramide an der Near Clip Plane und Far Clip Plane abschneidet. Alles was sich vor der Near Clip Plane, hinter der Far Clip Plane oder außerhalb der Pyramide befindet ist nicht sichtbar, das Frustum beschreibt also den gesamten sichtbaren Bereich. Der zweite Teil der Projection Transformation besteht darin, dass alle Koordinaten so transformiert werden, dass das Frustum innerhalb eines Einheitswürfels zwischen den Koordinaten (-1, -1) und (1, 1) liegt. Bei der Transformation eines Pyramidenstumpfes zu einem Würfel treten Verzerrungen auf: Nahe Objekte erscheinen größer, während entfernte Objekte kleiner wirken, Winkel verändern sich. Dieser Effekt ist gewollt, entspricht er doch dem menschlichen Seheindruck. Die orthogonale Projektion verläuft analog, nur wird hier das Sichtfeld nicht als Pyramidenstumpf sondern als Quader aufgefasst. Dadurch treten bei der Transformation keine Verzerrungen auf, Größenverhältnisse bleiben erhalten. Diese Art der Projektion ist den meisten aus 3D-Editoren bekannt, wo sie beim Erstellen von Modellen verwendet wird. Primitive Assembly Die Per-Vertex Operations sind damit abgeschlossen. Auf dieser Stufe werden Primitive als Ganzes behandelt. Dabei ist es das Hauptziel, so viele unsichtbare Primitive wie möglich zu entfernen, um Rechenzeit zu sparen. Zunächst werden Primitive, die uns ihre Rückseite zuwenden, entfernt. Sie gelten als nicht sichtbar. Diesen Schritt bezeichnet man als Backface Culling. Als nächstes werden alle Primitive, die nicht innerhalb des sichtbaren Bereiches liegen, entfernt. Durch die Projektion auf den Einheitswürfel ist dies sehr leicht. Primitive, die nur zum Teil innerhalb des sichtbaren Bereichs liegen, werden an den Würfelkanten abgeschnitten. OpenGL fügt selbstständig neue Vertices ein, wenn dies nötig ist. Diesen Schritt bezeichnet man als Clipping. Viewport Transformation Bis zu diesem Moment geschah noch alles im dreidimensionalen Raum, hier werden die Koordinaten endgültig in den zweidimensionalen Raum projiziert, indem man die Tiefenkoordinate einfach entfernt. Verloren ist die Tiefeninformation dennoch nicht, sie wird gespeichert und später noch gebraucht. Anschließend werden die Koordinaten aus dem Einheitssystem ein letztes Mal in ein Koordinatensystem transformiert, das die Ausmaße des Anzeigebereichs auf dem Bildschirm (Viewport) hat.
5 Rasterization Bei der Rasterization werden nun die immer noch in Form von Koordinaten vorliegenden Primitive auf ein Raster übertragen. Der dabei zur Anwendung kommende Algorithmus ist das Scanline Rasterizing. Dabei überprüft der Algorithmus zeilenweise an jedem Bildpunkt, ob dieser vom Primitiv überdeckt wird. Ist dies der Fall, so berechnet der Rasterizer durch Interpolation aus den Farb- und Lichtinformationen der benachbarten Vertices die Farbe, die dieser Bildpunkt erhalten soll. Tragen die Vertices Texturkoordinaten, so wird auch aus ihnen durch Interpolation eine Texturkoordinate für diesen Bildpunkt berechnet. Aus der Textur selbst wird an dieser Stelle allerdings noch nicht gelesen. Ebenso wird aus den Tiefenwerten der Vertices ein Tiefenwert interpoliert. Mit den so berechneten Daten erstellt der Rasterizer für jeden Bildpunkt ein sogenanntes Fragment. Per-Fragment Operations Diese Fragments müssen im letzten Schritt noch einmal einzeln verarbeitet werden. Zunächst wird bei allen Fragments, die im vorherigen Schritt eine Texturkoordinate zugewiesen bekommen haben, der Farbwert an der passenden Stelle der Textur gesucht und dem Fragment zugeordnet. Anschließend wird durch optional aktivierbare Tests überprüft, ob das Fragment dargestellt werden soll. Ein solcher Test ist zum Beispiel der Tiefentest. Dabei wird die Tiefeninformation des Fragments mit dem Depth Buffer, einer Datenstruktur, die über mehrere Durchläufe der Rendering-Pipeline die Tiefenwerte jedes gezeichneten Bildpunktes speichert, verglichen. Wurde an dieser Stelle bereits ein Bildpunkt an geringerer Bildtiefe ( davor ) gespeichert, so wird das Fragment verworfen. Ist dies nicht der Fall und das Fragment besteht auch eventuelle andere Tests, so wird sein Farbwert schließlich in den Framebuffer geschrieben bzw. mit einem bereits bestehenden Farbwert vermischt. Ausblick Wie bereits erwähnt, gilt die Fixed-Function-Pipeline aufgrund ihrer begrenzten Möglichkeiten inzwischen als überholt. Der Trend geht eindeutig zu programmierbaren Grafikchips und OpenGL in seiner aktuellen Version 2.1 unterstützt in Teilen bereits eine programmierbare Pipeline. Die nächste OpenGL Version 3.0 soll diesem Trend folgen können. Die Fixed-Function- Pipeline wurde komplett entfernt und es wurden größere Umbauarbeiten an der API vorgenommen. Allerdings geht dieser Fortschritt zu Lasten der Abwärtskompatibilität, die bei 3.0 erstmals nicht gegeben sein soll. OpenGL 3.0 ist angekündigt für Anfang 2008, bisher jedoch nicht erschienen.
6 Weiterführende Literatur Dave Shreiner, Mason Woo, Jackie Neider: OpenGL Programming Guide (6. Auflage). Addison-Wesley Longman, 2007 Links (Offizielle OpenGL-Homepage) (Homepage der Khronos Group)
OpenGL. (Open Graphic Library)
OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation
MehrProbelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering
Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten
Mehr4. Kapitel 3D Engine Geometry
15.11.2007 Mathematics for 3D Game Programming & Computer Graphics 4. Kapitel 3D Engine Geometry Anne Adams & Katharina Schmitt Universität Trier Fachbereich IV Proseminar Numerik Wintersemester 2007/08
Mehr(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
(7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung
MehrComputergraphik Grundlagen
Computergraphik Grundlagen V. Die Rendering-Pipeline Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Der Begriff Rendering 2. Die Rendering-Pipeline Geometrische Modellierung
MehrComputer Graphik. Mitschrift von www.kuertz.name
Computer Graphik Mitschrift von www.kuertz.name Hinweis: Dies ist kein offizielles Script, sondern nur eine private Mitschrift. Die Mitschriften sind teweilse unvollständig, falsch oder inaktuell, da sie
MehrOpenGL als API für Augmented und Virtual Reality
OpenGL als API für Augmented und Virtual Reality Tobias Lang langt@cip.ifi.lmu.de Hausarbeit im Hauptseminar Augmented und Virtual Reality Inhaltsverzeichnis 1. Einleitung... 3 2. Was ist OpenGL... 3 3.
MehrSoftwareprojekt Spieleentwicklung
Softwareprojekt Spieleentwicklung Prototyp I (2D) Prototyp II (3D) Softwareprojekt 12.04. 19.04. 26.04. 03.05. 31.05. Meilenstein I 28.06. Meilenstein II Prof. Holger Theisel, Tobias Günther, OvGU Magdeburg
Mehr:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese
Geometrisches Modell bestehend aus Datenstrukturen zur Verknüpfung geometrischer Primitive, welche eine Gesamtszene beschreiben Bildsynthese := Modellabbildung Pixelbasiertes Modell zur Darstellung eines
Mehr"rendern" = ein abstraktes geometrisches Modell sichtbar machen
3. Grundlagen des Rendering "rendern" = ein abstraktes geometrisches Modell sichtbar machen Mehrere Schritte: Sichtbarkeitsberechnung Beleuchtungsrechnung Projektion Clipping (Abschneiden am Bildrand)
MehrGrundlagen der Spieleprogrammierung
Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 9: Engines, Cg und anderes Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch
MehrDirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006
DirectX und OpenGL Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 2 Inhalt Einleitung Übersicht DirectX und Komponenten Übersicht OpenGL Sprachlicher Aufbau OpenGL Sprachlicher
MehrSpezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe
Grafikprozessoren Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe 2D: Berechnung der Bildes aus einfachen Grafikprimitiven 3D: Bildaufbau aus räumlicher Beschreibung
MehrVHDL - Grundlagen des Pointrenderings
VHDL - Grundlagen des Pointrenderings Marc Reichenbach, Timo Nieszner Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 2013 1 / 25 Rendern von Dreiecksnetzen Quelle: Inf9, CG-Slides grobmaschiges
MehrEinführung in OpenGL. Einführung in OpenGL
OpenGL: Einführung/Standard - OpenGL (Open Graphics Library) ist ein Standard für 3D Rendering und 3D Hardware-Beschleunigung - OpenGL läuft unter Windows, MacOS, Linux, Unix, - Website: http://opengl.org
MehrSeminar Game Development Game Computer Graphics. Einleitung
Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig
MehrComputer-Graphik I Transformationen & Viewing
lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann
MehrWorkshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar
Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung
MehrPraktikum: Spieleengine im Eigenbau
Seite 1/17 Praktikum Spieleengine im Eigenbau Alexander Weggerle, Tobias Bäuerle 19.10.09 http://www.saschawillems.de Praktikum: Spieleengine im Eigenbau Seite 2/17 Praktikum Spieleengine im Eigenbau Alexander
MehrGrafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
MehrOpenGL vs. Direct3D Ein 3D-API Vergleich
OpenGL vs. Direct3D Ein 3D-API Vergleich 3D-APIs (Application Programming Interface)sind Software-Schnittstellen, um über einen Standard auf die Hardware des Rechners zugreifen zu koennen. Direct3D von
MehrThema: Hardware-Shader
Seminar Grafikprogrammierung Thema: Hardware-Shader Christian Bauer 03.07.08 Überblick Entwicklung Die Shader im Detail Programmierung GPGPU Zusammenfassung & Ausblick 1/19 Entwicklung (1) Früher: Berechnung
MehrEine Einführung Computergrafik SS14 Timo Bourdon
Eine Einführung Computergrafik SS14 Timo Bourdon Organisatorisches Übung am Freitag den 11. Juli entfällt! Zum OpenGL-Übungsblatt OpenGL 3.0 oder höher notwendig (Shading Language 1.50 oder höher) CIP
MehrErinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung
Erinnerung Arbeitsschritte der Computergraphik Modellierung Animation Generierung Ausgabemedium Graphik/-Pipeline Wandelt die Beschreibung einer Szene im dreidimensionalen Raum in eine zweidimensionale
MehrEinführung in die Computergrafik
Einführung in die Computergrafik Proseminar Computergrafik Zuse Institut Berlin 22. November 2007 Organisatorisches Informationen rund um s Seminar. http://www.zib.de/hotz/teaching/currentlectures.htm
Mehrcomputer graphics & visualization
Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation
Mehr2.2 Projektionen und Kameramodelle
Graphikprog. GRUNDLEGENDE VERFAHREN UND TECHNIKEN. Projektionen und Kameramodelle Nachdem alle Objekte einer Szenerie mittels der besprochenen Transformationen im D-Weltkoordinatensystem platziert sind,
MehrKapitel 2: Mathematische Grundlagen
[ Computeranimation ] Kapitel 2: Mathematische Grundlagen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 2. Mathematische Grundlagen
MehrKomplexpraktikum Graphische Datenverarbeitung im WS 04/05
Komplexpraktikum Graphische Datenverarbeitung im WS 04/05 von Enrico Leonhardt 28 45 669 TU Dresden Medieninformatik 29. März 2005 Graphische Datenverarbeitung WS 04/05 Einführung Dieser Raytracer entstand
MehrProseminar Computergrafik: OpenGL. Marcel Heckel
Proseminar Computergrafik: OpenGL Marcel Heckel 23.5.26 . Inhalt 1. Allgemein Was ist OpenGL Geschichte 2. Etwas 3D-Mathematik Das Koordinatensystem Vektoren Matrizen 3. Grundlegendes zu OpenGL Arbeitsweise
MehrUniversität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( )
Universität Osnabrück Fachbereich Mathematik / Informatik 5. Vorlesung (06.05.2013) Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. Game Application Layer Rückblick Game
MehrMaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE. Marko HeRBERTZ
MaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE Marko HeRBERTZ Wiederholung: Objekt-, Welt- und Kamerakoordinaten Kugelkoordinaten in kartesische Mögliche Schwierigkeiten Kameralinse Lage der Festung Lagerichtige
MehrRendering für Augmented Reality
Rendering für Augmented Reality Vorlesung Augmented Reality Prof. Dr. Andreas Butz WS 2006/07 Folien heute von Dr. Martin Wagner LMU München Medieninformatik Butz Augmented Reality WS2006/07 Folie 1 Ein
MehrÜberblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de
Überblick Echtzeit-Rendering Uwe Domaratius dou@hrz.tu-chemnitz.de Gliederung 1. Einleitung 2. geometriebasierende Verbesserungen 3. Level-of-Detail 4. Culling 5. Texturen 6. bildbasiertes Rendering Was
MehrZwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework
Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen
MehrJörn Loviscach Hochschule Bremen
Programmierbare Hardware-Shader Jörn Loviscach Hochschule Bremen Überblick Vertex- und Pixel-Shader Anwendungsbeispiele fx-dateien Anwendungsbeispiele Zusammenfassung Puffer Vertex- und Pixel-Shader Hardware-Renderpipeline
MehrPraktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization
Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Billboards Letztes Übungsblatt: Meshes & Instancing um dem Terrain zusätzliche Details (Vegtation) hinzuzufügen. Nachteil:
MehrGraphische Datenverarbeitung und Bildverarbeitung
Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung
MehrInhaltsverzeichnis. 1 Hardwaregrundlagen
Inhaltsverzeichnis 1 Hardwaregrundlagen 2.4 2.5 Perspektivische 2.6 Parallele 2.7 Umsetzung der Zentralprojektion 2.8 Weitere 2.9 Koordinatensysteme, Frts. 2.10 Window to Viewport 2.11 Clipping 3 Repräsentation
MehrShadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen
Universität Hamburg Fachbereich Informatik Arbeitsbereich Technische Aspekte Multimodaler Systeme Seminar Informatikanwendungen in Nanotechnologien Betreuer: Bernd Schütz Sommersemester 2014 Shadingalgorithmen
MehrNichtrealistische Darstellung von Gebirgen mit OpenGL
Nichtrealistische Darstellung von Gebirgen mit OpenGL Großer Beleg Torsten Keil Betreuer: Prof. Deussen Zielstellung Entwicklung eines Algorithmus, der die 3D- Daten einer Geometrie in eine nichtrealistische
MehrSeminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen. Hermann Schwarz Marko Pilop
Seminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen Hermann Schwarz Marko Pilop 2003-11-20 http://www.informatik.hu-berlin.de/~pilop/3d_basics.pdf {hschwarz pilop}@informatik.hu-berlin.de
MehrCUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
MehrUniversität Augsburg. 20. April 2012. B. Möller (U. Augsburg) Computergraphik SS12 20. April 2012 1 / 6
Kapitel 1 Einführung B. Möller Universität Augsburg 20. April 2012 B. Möller (U. Augsburg) Computergraphik SS12 20. April 2012 1 / 6 Begriffsdefinition Computergrafik: realistische Darstellung realer oder
MehrProgrammieren mit DirectX
2D 3D Programmieren mit DirectX Teil 3: Malte Ried Fachhochschule Gießen-Friedberg 30. Oktober 2005 Inhalt 2D 3D 1 2D 2 3D 3 2D 3D Bis jetzt Windows-Fenster, das man schließen kann initialisiertes Direct3D
Mehr(13) Hot Topics. Vorlesung Computergrafik T. Grosch
(13) Hot Topics Vorlesung Computergrafik T. Grosch Heute Vorstellung der besten Flugsimulatoren Hot Topics T. Grosch - - Warum Hot Topics? Typischerweise i Computergrafik 1 : Grundlagen, konstant Computergrafik
MehrLehrbuch der Grafikprogrammierung
Klaus Zeppenfeld Lehrbuch der Grafikprogrammierung Grundlagen Programmierung Anwendung unter Mitwirkung von Regine Wolters mit 2 CD-ROMs Spektrum Akademischer Verlag Heidelberg Berlin LE 1 1 Grundlagen
MehrÜbersicht 1. Anzeigegeräte 2. Framebuffer 3. Grundlagen 3D Computergrafik 4. Polygongrafik, Z-Buffer 5. Texture-Mapping/Shading 6. GPU 7. Programmierbare Shader 1 LCD/TFT Technik Rotation der Licht-Polarisationsebene
Mehr8 3D-Grafik mit VPython
8 3D-Grafik mit VPython In diesem Kapitel wird das Python-Erweiterungsmodul Visual-Python bzw. VPython vorgestellt. Mit VPython können interaktive und animierte 3D-Szenen erzeugt werden. Dreidimensionale
Mehr1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen
3D-Rendering Ulf Döring, Markus Färber 07.03.2011 1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen Anzeigefläche (a) Worin besteht das Sichtbarkeitsproblem?
MehrGames Engines. Realtime Terrain Rendering
Games Engines Realtime Terrain Rendering RTR Gliederung Probleme & Anforderungen Grundlagen Heightmaps und Paging Visibility View Frustrum Culling Occlusion Culling/ Occlusion Map Fogging Level of Detail
MehrLandesabitur 2007 Beispielaufgaben 2005_M-LK_A 7. Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 1.
I. Thema und Aufgabenstellung Lineare Algebra / Analytische Geometrie Aufgaben Eine quadratische Pyramide (Grundkante 4 und Höhe 6) steht neben einer Stufe. 3. Achse 2. Achse 1. Achse Die Sonne scheint
MehrInhalt. Grundlagen - Licht und visuelle Wahrnehmung 1. Grundlagen - 2D-Grafik (Teil 1) 43. Grundlagen - 2D-Grafik (Teil 2) 67
Grundlagen - Licht und visuelle Wahrnehmung 1 Physikalische Grundlagen 2 Licht 2 Fotometrie 6 Geometrische Optik 9 Schatten 13 Farben 15 Visuelle Wahrnehmung - vom Reiz zum Sehen und Erkennen 17 Das Auge
MehrPlanare Projektionen und Betrachtungstransformation. Quelle: Angel (2000)
Planare Projektionen und Betrachtungstransformation Quelle: Angel (2) Gliederung Einführung Parallelprojektionen Perspektivische Projektionen Kameramodell und Betrachtungstransformationen Mathematische
MehrSpline-artige Kurven auf Subdivision Surfaces. Jörn Loviscach Hochschule Bremen, Germany
Spline-artige Kurven auf Subdivision Surfaces Jörn Loviscach Hochschule Bremen, Germany Überblick Spline-artige Kurven auf Spline-Flächen Kurven auf SDS: Problem, Anwendung Verwandte Arbeiten Spline-artige
MehrPhotonik Technische Nutzung von Licht
Photonik Technische Nutzung von Licht Raytracing und Computergraphik Überblick Raytracing Typen von Raytracern z-buffer Raytracing Lichtstrahlen-Verfolgung (engl. ray tracing): Berechnung von Lichtstrahlen
MehrSeminar: Programmierung von Grafikkarten (SS 2006)
Seminar: Programmierung von Grafikkarten (SS 2006) Shader Christian Niemand (nemojr@gmx.de) Johannes Spohr (jspohr@student.uni-kassel.de) Universität Kassel, FB 16 Research Group Programming Languages
MehrComputer Graphik (CS231) - Installation der Software
UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Spiegelgasse 1 CH 4051 Basel Tobias Maier (tobias.maier@unibas.ch) Jasenko Zivanov (jasenko.zivanov@unibas.ch) Marc Schmidlin
MehrHardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen
MASTER THESIS zur Erlangung des akademischen Grades Master of Science in Engineering im Studiengang 585 Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen Ausgeführt
Mehr19.09.2014. 2D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen
2D-Texturen Texturarten Transformationen Generierung Thomas Jung Reflectance Mapping 3D-Texturen Modellierung von Details erfordert Zeit Darstellung ist aufwendig (langsam) Details belegen Speicherplatz
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Beleuchtungsmodelle in OpenGL Bump-Maps zur Erzeugung von Reliefartigen Oberflächen Height-Maps
MehrShader für Geometrische Grundprimitive. Beispielszene mit vielen Kegeln unterschiedlicher Größe und Farbe
Shader für Geometrische Grundprimitive Beispielszene mit vielen Kegeln unterschiedlicher Größe und Farbe 0. Gliederung Gliederung: 1. Motivation 2. Verwandte Arbeiten 3. Überblick über das Vorgehen 3.1
MehrVergleich von Forward und Deferred Rendering
Vergleich von Forward und Deferred Rendering Kamil René König Bachelorarbeit Bachelor Informatik 12.08.2014 Betreuer: Prof. Dr. Detlef Krömker, Dr. Daniel Schiffner Übersicht Motivation Definitionen Forward
MehrGPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
MehrLastenheft. zum Projekt. Dynamische Geometrie-Software. Version 1 von 03.05.03. Gruppe geo09, Projektleiter: Andy Stock
Lastenheft zum Projekt Dynamische Geometrie-Software Version 1 von 03.05.03 Erstellt von: R. Hrushchak, P. Kongsto, A. Stock Seite 1 von 9 1) Zielbestimmung: Das Produkt soll seine Anwender in die Lage
MehrVektoren - Basiswechsel
Vektoren - Basiswechsel Grundprinzip Für rein geometrische Anwendungen verwendet man üblicherweise die Standardbasis. Damit ergibt sich in den Zahlenangaben der Koordinaten kein Unterschied zu einem Bezug
MehrSpeicherkonzepte von Pixel- und Vektorgrafik
Speicherkonzepte von Pixel- und Vektorgrafik Jahrgangsstufen Lernbereich 1: Modul 1.5 Stand: 20.01.2016 Fach/Fächer Zeitrahmen Benötigtes Material Informationstechnologie 1 Unterrichtsstunde Legoplatten
MehrHochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum 18.01.2005
Hochschule Bremen Rechnerstrukturen Labor I7I Thema: Grafikkarten Laborbericht Datum 18.01.2005 Carsten Eckert(83912) (72497) Fazit Für unseren Praxisteil zum Vortrag Grafikkarten haben wir uns entschieden,
MehrIntegration von 3D-Visualisierungstechniken in 2D-Grafiksystemen
Mitglied der Helmholtz-Gemeinschaft Inhaltsverzeichnis Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen Motivation Ergebnisse Ausblick 24. August 2012 Florian Rhiem 24. August 2012 PGI/JCNS
MehrLegt man die vom Betrachter aus gesehen vor den, wird die spätere Konstruktion kleiner als die Risse. Legt man die hinter das Objekt, wird die perspek
Gegeben ist ein und ein. Der wird auf eine gezeichnet, der unterhalb von dieser in einiger Entfernung und mittig. Parallel zur wird der eingezeichnet. Dieser befindet sich in Augenhöhe. Üblicherweise wird
MehrModellierung von 3D Wolken auf Basis von 2D Bewölkungsdaten und Rendering mittels Rastergrafik
2011 Modellierung von 3D Wolken auf Basis von 2D Bewölkungsdaten und Rendering mittels Rastergrafik Bachelor-Arbeit von Sascha Kolodzey Fachbereich Informatik - Universität Osnabrück 18.02.2011 Gutachter:
MehrSzenengraph-Architekturen im Kontext von VR- und AR-Anwendungen
Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen
MehrGrundlegende Algorithmen
3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine
MehrComputergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester 2014. Version: 24. März 2014
Peter Rösch Hochschule Augsburg University of Applied Sciences Sommersemester 2014 Version: 24. März 2014 Sommer 2014, HS Augsburg, Peter Rösch Inhalt [1] 1. Einführung 2. WebGL und GLSL 3. Geometrie und
MehrKurs zur Ergänzungsprüfung Darstellende Geometrie CAD. Ebenes Zeichnen (2D-CAD) und die ersten Befehle
CAD Ebenes Zeichnen (2D-CAD) und die ersten Befehle Schnellzugriff-Werkzeugkasten (Quick Access Toolbar) Registerkarten (Tabs) Gruppenfenster (Panels) Zeichenfläche Befehlszeile: für schriftl. Eingabe
MehrComputer-Graphik 2 Visibility Computations II Culling
lausthal omputer-raphik 2 Visibility omputations II ulling lausthal University, ermany zach@in.tu-clausthal.de Klassifikation (Erinnerung) Problemklassen innerhalb des Bereichs "Visibility omputations":
MehrC 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
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 Motivation 3D-Modelle bestehen i. d. R. aus Tausenden von Dreiecken Händische
MehrMF Breadcrumbs. Sergej Schefer & Fabian Marx
MF Breadcrumbs Sergej Schefer & Fabian Marx MF Breadcrumbs! Entwurf! Algorithmen! Screenshots / Live-Demo Entwurf! 2.5D Jump n Run! Spieler kann sich durch Level bewegen und Punkte aufsammeln! Freie Levelgestaltung
MehrNon-Photorealistic Rendering
Übersicht 1. Motivation und Anwendungen 2. Techniken - Cel Shading - Konturlinien - Hatching Einführung Traditionelle Computergraphik Ziel: Fotorealismus Einführung Motivation Bewusste Vermeidung von
Mehry x x y ( 2x 3y + z x + z
Matrizen Aufgabe Sei f R R 3 definiert durch ( ) x 3y x f = x + y y x Berechnen Sie die Matrix Darstellung von f Aufgabe Eine lineare Funktion f hat die Matrix Darstellung A = 0 4 0 0 0 0 0 Berechnen Sie
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1 Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen
MehrBildtransformationen. Geometrische Transformationen Grauwert-Interpolation
Bildtransformationen Geometrische Transformationen Grauwert-Interpolation Transformation Transformation zwei Schritte geometrische Transformation (Trafo der Koordinaten) Neuberechnung der Pielwerte an
MehrPraktikum Computergrafik
Praktikum Computergrafik Steven Schlegel Abteilung für Bild- und Signalverarbeitung Betreuer: Steven Schlegel (schlegel@informatik.uni-leipzig.de) Einführung in OpenGL und GLSL OpenGL OpenGL (Open Graphics
MehrComputer Graphik I Intro
Computer Graphik I Intro 1 Ziele Modellierung 2 Ziele Bildgenerierung 3 Anwendungen Ausgabe 4 Kontakt Marc Alexa TU Berlin Computer Graphik marc.alexa@tu- berlin.de Raum EN 717 hep://www.cg.tu- berlin.de
MehrIn Inventor werden Stile bzw. Stilbibliotheken zur Formatierung von Objekten benutzt:
11. Stile und Stilbibliotheken In Inventor werden Stile bzw. Stilbibliotheken zur Formatierung von Objekten benutzt: In einem Stil werden mehrere Eigenschaften bzw. Parameter zusammengefasst, die für einen
MehrGPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
MehrComputergrafik 1. 2D Rendering
Computergrafik 2D Rendering Hearn/Baker 32., 3.4-3.6,5. 5.8, 6. 6.8, 6. Based on material b Werner Purgathofer, Gerhard Reitmar and Dieter Schmalstieg 2D Racasting Inhalt Einfaches Rendering Model 2D Transformationen
MehrVektoren, Vektorräume
Vektoren, Vektorräume Roman Wienands Sommersemester 2010 Mathematisches Institut der Universität zu Köln Roman Wienands (Universität zu Köln) Mathematik II für Studierende der Chemie Sommersemester 2010
MehrHeute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)
t.jung@fhtw-berlin.de Heute Programmierbare Hardware-Shader Thomas Jung Architektur moderner Grafikkarten Rendering von Polygonlisten mit DirectX9 Vertex- und Pixel(Fragment) shader Motivation Spiele kommen
MehrKapitel 3: Geometrische Transformationen
[ Computeranimation ] Kapitel 3: Geometrische Transformationen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 3. Geometrische Transformationen
MehrFriedrich Hoermann 12.06.08 Hauptseminar Grafikprogrammierung. Grundlagen und Aufbau einer Grafikkarte
Friedrich Hoermann 12.06.08 Hauptseminar Grafikprogrammierung Grundlagen und Aufbau einer Grafikkarte Seite 2 Inhalt - Einleitung - Geschichte - Aufbau der Grafikkarte - Die Grafikpipeline - Ausblick Seite
MehrAutomatisch-generierte Texturen aus Laserpunktwolken
Automatisch-generierte Texturen aus Laserpunktwolken Sharon Friedrich, Maik Häsner Ruprecht-Karls-Universität Heidelberg Interdisziplinäres Zentrum für wissenschaftliches Rechnen (IWR) Softwarepraktikum
Mehr3 GRAFIKEN, BILDER, ZEICHNUNGSOBJEKTE
3 GRAFIKEN, BILDER, ZEICHNUNGSOBJEKTE Grafiken, Bilder und Zeichnungsobjekte können in einer Präsentation mehrere Funktionen haben: Sie können eine Präsentation anschaulicher machen, können das Vorgeführte
MehrInhaltsverzeichnis. V Vorwort 17. V.1 An wen richtet sich dieses Buch? 18. V.2 Ansprüche an den Computer 18. V.4 Bildergalerie 19.
V Vorwort 17 V.1 An wen richtet sich dieses Buch? 18 V.2 Ansprüche an den Computer 18 V.3 Website 19 V.4 Bildergalerie 19 V.5 Über den Autor 20 1 Einführung 21 1.1 Installation 21 1.2 Projekttypen 22 1.3
MehrKoordinaten, Transformationen und Roboter
Koordinaten, Transformationen und Roboter Dipl.-Inform. Wolfgang Globke Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 48 Einleitung Seit Anbeginn der
Mehr3D Rasterization. Unifying Rasterization and Ray Casting. Simon Christoph Stein. 20 Dez 2011. Georg-August-Universität Göttingen
Unifying Rasterization and Ray Casting Georg-August-Universität Göttingen 20 Dez 2011 Inhaltsverzeichnis Traditionelle Renderverfahren Rasterung Raytracing 3D-Rasterung Algorithmus Vergleich 2D/3D-Rasterung
MehrHardware-beschleunigte Textur-Extraktion für ein fotorealistisches prädiktives Display. Tim Burkert
Hardware-beschleunigte Textur-Extraktion für ein fotorealistisches prädiktives Display Tim Burkert Lehrstuhl für Realzeit-Computersysteme Hardware-beschleunigte Textur-Extraktion für ein fotorealistisches
Mehr1 Transformationen. 1.1 Transformationsmatrizen. Seite 1
Seite 1 1 Transformationen 1.1 Transformationsmatrizen In den folgenden Teilaufgaben sind die Koeffizienten von 4 4 Transformationsmatrizen zur Repräsentation von affinen Abbildungen im R 3 zu bestimmen.
Mehr3D rendering. Introduction and interesting algorithms. PHP Usergroup Dortmund, Dortmund, 2006-12-14. Kore Nordmann <kore@php.net>
3D rendering Introduction and interesting algorithms PHP Usergroup Dortmund, Dortmund, 2006-12-14 Kore Nordmann Speaker Kore Nordmann Studies computer science at the University Dortmund
MehrAnwendertreffen 20./21. Juni
Forum cadwork 3D Viewer Der cadwork 3D Viewer ist ein Programm mit dem Sie einfache Präsentationen und Bilder Ihrer Projekte erstellen können. Auch kleinere Animationen und Filme können mit ihm erstellt
Mehr