Direct3D 8. Ein kurzer Überblick. Seite 1 von 13. Seminararbeit von. Michael Sonnenfroh. Mai 2001

Größe: px
Ab Seite anzeigen:

Download "Direct3D 8. Ein kurzer Überblick. Seite 1 von 13. Seminararbeit von. Michael Sonnenfroh. Mai 2001"

Transkript

1 Direct3D 8 Ein kurzer Überblick Seminararbeit von Michael Sonnenfroh Mai 2001 Seite 1 von 13

2 Mircosoft Direct3D Direct3D ist eine Grafikschnittstelle, die einen Geräte unabhängigen Zugriff auf moderne 3D - Grafikhardware bietet. Direct3D ist eine Low-Level API, die die Kommunikation mit der Hardware auf einer sehr tiefen Ebene bietet. Dennoch wird der Programmierer durch einen HardwareAbstractionLayer weit genug von der eigentlichen Hardware abgekoppelt, um sich keine Gedanken um den spezifischen Grafikchip machen zu müssen. Kapitel 1: Grundlagen Transformation Einer der wichtigsten Punkte in der 3D -Programmierung ist das Positionieren von Objekten im Raum. In Direct3D geschieht das mit Hilfe von 4x4 Matrizen. Diese enthalten zum einen eine 3x3 Matrix für die Transformation des Objekts (Drehung), als auch einen 4D Vektor mit der Position im Raum. Direct3D unterscheidet zwischen drei verschiedenen Matrizen: 1.WorldMatrix Dies Matrix konvertiert ein Modell von seinem lokalen Koordinatensystem in das Koordinatensystem der 3D-Szene (Welt). 2.ViewMatrix Die ViewMatrix positioniert die Kamera in der Welt und bestimmt deren Ausrichtung. Im Kamera -Raum befindet sich der Betrachter im Ursprung und schaut in Richtung der positiven Z-Achse. 3.ProjectionMatrix Die Projektions-Matrix beschreibt den internen Zustand der Kamera in Analogie zu einer Linse. Die Projektions-Matrix sorgt typischerweise für eine perspektivische Korrektur. Primitives und Punkte(Vertices) Als ein Primitive bezeichnet man in Direct3D eine Sammlung von Punkten, die ein elementares 3D- Objekt ergeben. Direct3D kennt sechs solcher elementaren Objekte; PointList, LineList, LineStrip, Seite 2 von 13

3 TriangeList, TriangleStrip und TriangleFan. Alle größeren 3D -Objekte wie Raumschiffe oder Gebäude bestehen a us diesen elementaren Objekten. Oftmals wird für Primitives auch das Wort Polygone gebraucht. (z.b. in OpenGL) Jeder einzelne Punkt(Vertex) kann in Direct3D eine Vielzahl von Informationen enthalten. Dazu zählen Texturkoordinaten, Farbwerte, Punktgröße und die eigentliche Position des Punktes. Bis auf die Position sind alle weiteren Daten optional in Direct3D. Ein Punkt könnte folgende Form haben: RECORD x,y,z : Single <-- Position Color : LongWord <-- Farbe u,v : Single <-- Texturkoordinaten END Zu beachten ist, dass die Reihenfolge in der die einzelnen Teile des Punktes angegeben werden entscheidend ist! Über Konstanten teilt man Direct3D mit, welche Informationen ein Vertex enthält. Linke Hand Kartesisches Koordinatensystem Microsoft verwendet in Direct3D standardmäßig das Linke Hand Kartesische Koordinatensystem,d.h die Punkte, die ein Dreieck definieren, müssen im Uhrzeigersinn angegeben werden. Falls diese gegen den Uhrzeigersinn angegeben werden, wird das Dreieck nicht gezeic hnet. Dieses Verhalten wird auch als Backface-Culling bezeichnet. Licht und Materialien In Direct3D können bis zu 8 unterschiedliche Lichtquellen definiert werden, die die Szene beleuchten. Im Gegensatz zur Natur, wo einfallendes Licht von der Oberfläche reflektiert wird und wieder andere Flächen beleuchtet und so kontinuierlich seine Farbe verändert bis es das Auge des Betrachters erreicht, wird in Direct3D aus Rechenzeit Gründen ein vereinfachtes Modell angewendet. Das Licht in D3D besteht aus den drei G rundfarben rot,grün und blau. In Direct3D wird zwischen zwei grundsätzlichen Lichtarten unterschieden: 1.Ambient Light Das ist diffuses Licht der Umgebung ohne eine bestimmte Richtung und ohne eine spezielle Lichtquelle. Indirekte Beleuchtung eines Fotograp hen ist ein Beispiel für Ambient Light. 2.Direct Light Das ist das Licht, das eine Lichtquelle in eine bestimmte Richtung abstrahlt. Es fügt kein Licht zur Umgebungshelligkeit hinzu. Direct Lights werden nun in weitere Untergruppen aufgeteilt: 2.1.Point Lights Punktförmige Lichtquellen strahlen Licht in alle Richtungen aus und werden wie Seite 3 von 13

4 Objekte im Raum positioniert. Vergleichbar mit einer Glühbirne. 2.2.Spotlights Spotlights haben die Eigenschaft, dass sie Licht in genau eine Richtung emittieren und einen Lic htkegel bilden, der in der Mitte die maximale Helligkeit aufweist und zu den Rändern hin schwächer wird. Vergleichbar mit einem Suchscheinwerfer. 2.3.Directional Lights. Dies sind Lichtquellen ohne wirkliche Position. Sie strahlen ihr Licht parallel aus, was bedeutet, dass das Licht alle Objekte in der Szene aus der gleichen Richtung trifft. Vergleichbar ist dies mit dem Licht, das von der Sonne auf die Erde trifft. Materialien bestimmen, wie 3D -Objekte Licht in einer Szene reflektieren oder emittieren. Es kann genau angegeben werden, wie stark und in welchem Farbton sie Umgebungs - oder diffuses Licht reflektieren. Materialien können Licht auch emittieren, um so den Anschein zu erwecken, dass das Objekte leuchtet. Das emittierte Licht beeinflusst die Beleuchtung anderer 3D-Objekte nicht! Texturen Texturen sind aus der heutigen Grafikprogrammierung nicht mehr wegzudenken. Sie ermöglichen es Objekten ein realistische Aussehen zu geben, ohne das die Polygonanzahl erhöht werden muss. Im Grunde sind Texturen nur Bitmaps, die auf Polygone gemappt werden. Texturkoordinaten Texturen können auf jede Primitive -Art gemappt werden, die Direct3D bietet. Um eine Textur nun auf ein Dreieck zu legen, muss jedem Punkt eine Texturkoordinate zugeordnet werden. Direct3D verwendet uniforme Texturkoordinaten, die normaler weise von (0,0) bis (1,1) innerhalb der Textur reichen (bei 2 -D Texturen). Die Position (0,0) bezieht sich immer auf die linke obere Ecke der Textur, die Position (1,1) auf die rechte untere Ecke. Texture Address Modes Texturkoordinaten, die größer als 1 sind, werden von Direct3D speziell behandelt. Dazu werden die sogenannten Texture Adress Modes gesetzt: 1.Wrap Texture Die Textur wird auf das Primitive gekachelt. 2.Mirror Texture Die Textur wird immer gespiegelt gekachelt. 3.Clamp Texture Die Textur wird einmal gezeichnet und die Farben der Kanten nach außen verschmiert. 4.Border Color Direct3D benutzt eine fest vorgegebene Farbe für alle Texturkoordinaten außerhalb 0,1. Texture Filtering Wenn eine Textur auf ein Primitive gemappt wird, muss sie meisten verzerrt werden, um an die Seite 4 von 13

5 Form und Größe des Primitive's angepasst zu werden. Damit diese Operationen keine zu starken optischen Artefakte hinterlassen, kann eine Textur gefiltert werden. Folgende Varianten gibt es in D3D: 1.Nearest Point Sample Dies ist die Standardmethode von D3D. Es wird einfach der nächst beste Pixel in der Textur als Farbwert gewählt. 2.Linear Texture Filtering Bei dieser Methode bildet D3D einen Mittelwert über die umgebenden Texturpixel, um d ie Farbe des zu setzend Pixel zu ermitteln. 3.Anisotropic Filtering 4.Mipmaps Kapitel 2: Die Direct3D-Schnittstelle In diesem Kapitel möchte ich einen Überblick über den Umgang mit der Direct3D geben und an Hand eines Beispiels die Grundlegenden Funktionen erläutern. -Schnittstelle COM-Objekte DirectX basiert seit den ersten Versionen auf den COM-Objekten von Microsoft. Die COM-Objekte fungieren als Black Box und stellen nach außen nur ein Interface zur Verfügung. Direct3D kennt elf verschiedene Interfaces, von denen ich hier nur die Wichtigsten vorstellen möchte. Initialisierung Als erstes muss Direct3D initialisiert werden. Im Gegensatz zum Erstellen normaler COM -Objekt ist bei D3D kein CoInitialize nötig, vielmehr wird die Funktion Direct3DCreate8 benutzt um ein IDirect3D8 Objekt zu erstellen (wenn von Objekten die Rede ist, sind immer COM -Objekte gemeint). Mit Hilfe dieses Objekts kann ein IDirect3DDevice8 Objekt (kurz device) erzeugt werden, welches die Direct3D Abstraktion des Grafikadapters darstellt. Der IDirect3D8.CreateDevice-Aufruf erhält eine Reihe von Parametern, die genau spezifizieren, welcher Grafikadapter, welche Auflösung, Bildwiederholrate, Farbtiefe,TnL-Support,etc. verwendet werden soll. VertexBuffer Wie wir in Kapitel 1 gesehen haben, besteht jedes 3D-Objekt aus einer Vielzahl von Vertices. Diese Vertices werden in D3D in sogenannten VertexBuffer gespeichert. Ein VertexBuffer ist ein Speicherbereich, der für den Anwender transparent, sowohl im RAM des Grafikadapters, im AGP - Speicher als auch im normalen System -RAM liegen kann. VertexBuffer sind in modernen Grafikadapter direkt in Hardware implementiert und werden von Direct3D nur durchgereicht. Der Anwender kann in D3D nicht spezifizieren wo der VertexBuffer liegen soll, er kann nur durch Parameter gewisse Einschränkungen bestimmen, die es D3D ermöglichen den bestmöglichen Speicherplatz zu finden. Über das device kann ein VertexBuffer erstellt werden. Gelingt die Seite 5 von 13

6 Ausführung, erhält man ein COM -Objekt vom Typ IDirect3DVertexBuffer8, das die D3D Abstraktion eines VertexBuffers(kurz VB) darstellt. Um nun unsere Punkte in den VB zu transferieren müssen wir diesen locken.das bedeutet, wir müssen D3D mitteilen, dass wir Zugriff auf den Speicherbereich des VB wollen. Gelingt der Zugriff, erhält man einen Zeiger auf einen Zeiger, der auf den Speicherbereich des VB's zeigt. Das korrekte Dereferenzieren der Zeiger ist wichtig, da der erste Zeiger in den Kernel verweist und das Schreiben der Punktdaten in denselben zu äußerst unerwünschten Effekten führt. Die Punktdaten können nun per memcopy direkt in den VertexBuffer geschrieben werden. Nach erfolgreichem Kopieren, muss der Zugriff auf den VB durch die Funktion Unlock des VB - Objekts wieder freigegeben werden. Zu beachten ist, das das Locke n eines VertexBuffers zu einem Stall des System führen kann, wenn sowohl Grafikchip als auch D3D versuchen gleichzeitig auf den Puffer zuzugreifen. Es führt zwar nicht zu einem Absturz, beeinträchtigt aber die Performance enorm. IndexBuffer Analog zu Ver texbuffer gibt es in Direct3D zusätzlich IndexBuffer ( IDirect3DIndexBuffer8) mit denen der indexierte Zugriff auf die einzelnen Punkte innerhalb eines VertexBuffer's ermöglicht wird. Das Erstellen und Verwalten geschieht analog zu den VB's, einziger Unters chied ist die Art der Daten. Statt kompletter Punkte werden hier nur Indexnummern angegeben (16bit bzw. 32bit). FlexibleVertexFormat Nachdem wir nun unsere Punkte in einen VertexBuffer gespeichert haben, müssen wir Direct3D sagen, welches Format ein Punkt hat, d.h. welche Komponenten der Punkt außer seiner Position noch enthält. Dies ist wichtig, damit Direct3D die Punkte richtig interpretieren kann. Die Komposition der Punkte wird Direct3D durch OR Verknüpfte-Konstante erläutert. Unser Punkt aus Kapitel 1 würde so zusammengesetzt: FVF = D3DFVF_XYZ OR D3DFVF_DIFFUSE OR D3DFVF_TEX1 Position OR Farbwert OR Texturkoordinaten Mit der Funktion SetVertexShader des device kann man D3D das Punktformat mitteilen. Streams Nun müssen wir Direct3D noch angeben, welche Daten es zum Zeichen verwenden soll. Diese Daten werden als Streams bezeichnet. Ein Stream ist entweder ein VertexBuffer oder ein IndexBuffer. Es können auch mehrere Streams kombiniert werden. Dadu rch besteht die Möglichkeit in einem Stream die Position des Punktes zu haben und in einen anderen Stream seine Texturkoordinaten. Mit der Funktion SetStreamSource des device können die Streams gesetzt werden. Seite 6 von 13

7 Device States Direct3D ist eine Zustandsmasc hine, d.h. Anwendungen setzen Zustände für Licht, Material und Transformation.Auf alle dann zum Rendern übergebenen Daten werden diese Zustände angewendet. Zustandsänderungen beeinflussen Direct3D nie rückwirkend, d.h. Änderungen werden erst beim Rendern der nächsten Primitives wirksam. die Render States Die Render States kontrollieren den Renderer des Direct3D devices. Dies umfasst Parameter für Beleuchtung, Clipping, Culling sowie die Transformation. Render States werden mit der Funktion SetRenderState des device gesetzt. Für die Transformation Matrizen gibt es spezielle Funktion SetTransform. Texture Stage States Analog zu den Render States setzen Texture Stage States das Verhalten der Texturen beim Mappen auf Primitives. In Direct3D können bis zu 8 Texturen zusammengemischt werden. Für jeden Einzelnen dieser Stages können umfangreiche Einstellungen vorgenommen werden. Jedes dieser acht Stages wird mit den vorher berechneten Stages zusammengemischt. Dies ermöglicht Multitexturing -Effekte wie Lightmaps oder Bump-Maping. Rendern Nachdem die Vertexdaten angelegt wurden und die entsprechenden Renderstates gesetzt wurden, ist es nun an der Zeit die übergebenen Daten zu rendern. Dies geschieht in Direct3D mit Hilfe der Funktion DrawPrimitive. Als Parameter erwartet die Funktion die Primitive Art, die Anzahl an zu Seite 7 von 13

8 zeichnenden Primitives und die Anzahl verwendeter Punkte. Das Rendern geschieht asynchron, d.h. das Programm wartet nicht bis der Grafikadapter das Zeichnen beendet hat, sondern ist sofort bereit die nächsten Befehle anzunehmen. Der Grafiktreiber sorgt hier für die korrekte Zwischenpufferung. Lost Devices Ein Direct3D device kann entweder in einem betriebsbereiten Zustand oder in einem verlorenen Zustand sein. Verlor en bedeutet hier, dass dem Programm die Kontrolle über den Grafikadapter entzogen wurde. Alle Aufrufe von Direct3D werden korrekt beendet, nur haben sie keine direkten Auswirkungen mehr. Der Zustand wird zum Beispiel durch einen Taskwechsel in einer Vollbi ld- Applikation ausgelöst. Der Programmierer muss nun das Direct3D device neu initialisieren, um den Betrieb wieder aufnehmen zu können. Dafür ist es aber von Nöten, sämtliche Resourcen auf der Grafikkarte wie VertexBuffer und Texturen freizugeben und nach dem Reset neu zu laden. Kapitel 3: Direct3D Architektur In diesem Kapitel möchte ich einen genaueren Überblick über die Architektur von Direct3D geben und dabei besonders auf die neuen Komponenten VertexShader und PixelShader eingehen. Mit DirectX8 is t Microsoft im 3D -Bereich eine Kooperation mit dem Grafikchip Hersteller Nvidia eingegangen, um die 3D -Schnittstelle besser auf die Bedürfnisse moderner Grafikchips abzustimmen. Rendering Pipeline Das folgende Diagramm verdeutlicht, wie die einzelnen Pun kte Direct3D und/oder den Grafikadapter durchlaufen, bis sie im Framebuffer als fertige Pixel abgelegt werden. Seite 8 von 13

9 Vertex Daten werden zuerst von der TnL -Engine des Grafikadapters, der Softwarefunktionen von Direct3D oder den Vertex Shadern verarbeitet. Dies e Daten werden dann von Direct3D in Software durch den Sichtbereich des Viewports vorsortiert, wobei gegebenenfalls nicht sichtbare Objekte eliminier werdent. Im nächsten Schritt werden die einzelnen Primitive's mit Texturen versehen. Dies geschieht entwe der durch Direct3D -Funktionen in Software/Hardware oder durch spezielle Pixel Shader. Als letztes folgt Nebelberechnung, Stencil-, Alpha- und Tiefentest, bevor ein Pixel im Framebuffer abgelegt werden kann. Aber was sind nun die Vertex bzw. Pixel Shader? Vertex Shader Vertex Shader sind kleine Programme die das Laden und Verarbeiten von Vertices kontrollieren. Vertex Shader enthalten Definitionen über das Format der Eingangsdaten, die Anzahl an verwendeten Streams und eine Funktion, die auf die Punkte ange wendet wird. Vertex Shader erzeugen weder neue Punkte, noch löschen sie vorhanden. Der Begriff Vertex Shader bezieht sich meistens auf die programmierbaren Varianten, obwohl die selbe Technik auch bei den Standardfunktionen von Direct3D angewendet wird. Als Programmiersprache für die Vertex Shader dient ein spezieller Assembler, der von Direct3D vorkompiliert wird. Ein Programm kann maximal 128 Instruktionen enthalten, es besteht zum einen aus dem Source -Code und zum anderen aus einer Datendefinition, die f ür das richtige Mapping der Eingangsdaten sorgt. Bis auf die Geforce3 Karte von NVidia gibt es bisher noch keine Grafikkarte, die Vertex Shader in Hardware unterstützt. Die nächste Abbildung zeigt die Umgebung, die ein Vertex Shader Programm sieht, den Pse udo- Prozessor. Seite 9 von 13

10 Wie die Grafik zeigt, besitzt der Vertex Shader 16 Input Register in denen die Daten aus den verschiedenen Streams pro Vertex zur Verfügung stehen. Die Input Register sind weakly typed, d.h. wie die Daten interpretiert werden liegt am Vertex Shader, nicht an Typkonventionen. So ist es zum Beispiel möglich, ganze Transformation Matrizen als Eingabe zu benutzten. Der Constant Memory ist ein Datenbereich, der für die Aufnahme von Transformationsmatrizen, Farbwerten und anderen konstanten D aten gedacht ist. Die Einträge in diesem Speicher können während der Ausführung des Vertex Shaders nicht verändert werden. Um die Berechnungen zu erleichtern, stehen noch 12 allgemeine Register zur Verfügung. Nach jeder Berechnung müssen die entsprechenden Ausgaberegister mit gültigen Werten gefüllt werden. Ausgabregister gibt es für die Position des Punktes, Farbwerte für diffuses Licht und Glanzpunkte,bis zu vier Texturkoordinaten, Werte für Vertexfog und die Punktgröße. Vertex Shader können in Direct3D in Form von Text - Dateien geladen werden. D3D übernimmt dann die Komplilierung und das Laden des Shaders. Das folgende kleine Beispielprogramm soll die Arbeitsweise eines Vertex Shaders verdeutlichen: vs.1.0 ;Version des Shaders mov r0,v0 ;Eingangsvertex v0 in Register r0 dp4 opos.x,r0,v3 ;Skalarprodukt mit Vector in r0 und v3 dp4 opos.y,r0,v4 ;Skalarprodukt mit Vector in r0 und v4 dp4 opos.z,r0,v5 ;Skalarprodukt mit Vector in r0 und v5 dp4 opos.w,r0,v6 ;Skalarprodukt mit Vector in r0 und v6 mov od0,v1 ;Farbwert des Vertex ins Ausgaberegister od0 mov ot0,v2 ;Texturkoordinaten des Vertex ins Ausgaberegister ot0 Dieser Shader transformiert den Vertex mit einer Matrix, die er mit seinem Input -Daten erhält. Normalerweise steckt die Transformations-Matrix als Konstante im Konstantenbereich, wurde aber hier von mir durch diese dynamische Variante ersetzt, um die Flexibilität der Vertex Shader zu demonstrieren. Seite 10 von 13

11 Vertex Shader ermöglichen damit dem Grafikprogrammierer, die TnL Hardware direkt zu programmieren, um so Effekte wie Fischauge, Membran Beleuchtung oder andere aufwendige Effekte direkt auf der Grafikhardware berechnen zu lassen. Pixel Shader Wie wir oben gesehen haben, ermöglichen es Vertex Shader eigene Vertexoperationen zu definieren und die Vertexdaten individuell durch eigene Funktionen zu bearbeiten. Pixel Shader ermöglichen es nun eigene Textur - und Blendingoperationen zu implementieren, die Effekte wie Bump-Mapping oder realistische Per -Pixel Beleuchtung ermöglichen. Im Gegensatz zu Vert ex Shadern gibt es für Pixel Shader keine Softwareunterstützung, d.h. Pixel Shader sind nur verfügbar, falls der Grafikadapter dies in Hardware explizit unterstützt. Die obige Grafik zeigt den logischen Datenfluss durch den Pixel Shader. Die Texturkoord inaten und Farbwerte werden für jeden einzelnen Pixel berechnet. Ein Dreieck aus dem Vertex Shader würde in seine Pixel zerlegt und diese dann jeweils als Eingabe v0 für den Pixel Shader benutzt. Der Programmierer hat damit die Möglichkeit, direkt auf der Pixelebene des Framebuffers zu arbeiten. Wie beim Vertex Shader gilt auch hier, dass weder neuen Punkte erzeugt, noch alte gelöscht werden können. Pixel Shader Programme werden sind ähnlich geartet wie Vertex Shader Programme und unterscheiden sich hauptsächlich in ihren Instruktionen voneinander. Fazit Direct3D ist eine sehr moderne und durchdachte 3D Schnittstelle, die es dem Programmierer ermöglicht abstrakt und gleichzeitig sehr dicht an der Hardware zu programmieren. Vorallem die Vertex- und Pixel Shader zeigen wie aktuell Direct3D8 ist und welches Potential in dieser Schnittstelle steckt. Die Kooperation mit Nvidia, die Microsoft eingegangen ist, hat dazu sicherlich einiges beigetragen. Die Entwicklung auf dem Grafiksektor schreitet rasant voran u nd es scheint beinahe so als wären die Hersteller von Grafikchips den Programmieren von 3D -Software und Seite 11 von 13

12 Spielen immer ein Stück voraus. So bin ich der Meinung, dass es noch ein bis zwei Jahre dauern wird, bis Spiele das volle Potential, das in Direct3D8 steckt, ausnutzten werden können. Seite 12 von 13

13 Quellenverzeichnis [1] DirectX 8.0 Programmer's Reference Microsoft Corporation 2000 [2] Introduction to Vertex Shader Richard Huddy Nvidia 2000 Seite 13 von 13

Shader. Computer Graphics: Shader

Shader. Computer Graphics: Shader Computer Graphics Computer Graphics Shader Computer Graphics: Shader Inhalt Pipeline Memory Resources Input-Assembler Vertex-Shader Geometry-Shader & Stream-Output Rasterizer Pixel-Shader Output-Merger

Mehr

Computer Graphics Shader

Computer Graphics Shader Computer Graphics Shader Sven Janusch Inhalt Fixed Function Pipeline Programmable Pipeline Implementierung Applikation Beispiel Sven Janusch 2 Fixed Function Pipeline T&L Pipeline (Transformation and Lighting)

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-14 Kapitel V: Modeling Transformation & Vertex Shader 5.1 Vertex Definitionen: Vertex Vertex Computergrafik Mathematischer Punkt auf einer Oberfläche

Mehr

Jörn Loviscach Hochschule Bremen

Jö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

Mehr

Die Welt der Shader. Fortgeschrittene Techniken III

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

Mehr

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

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker 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

Mehr

Softwareprojekt Spieleentwicklung

Softwareprojekt 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

Übungsstunde 8 zu Computergrafik 1

Übungsstunde 8 zu Computergrafik 1 Institut für Computervisualistik Universität Koblenz 14. und 15. Januar 2013 Inhaltsverzeichnis 1 Wiederholung - Beleuchtung Gouraud-Shading Phong-Shading Flat-Shading Vergleich 2 - Idee in OpenGL Texturfilterung

Mehr

Programmieren mit DirectX

Programmieren 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

OpenGL und die Fixed-Function-Pipeline

OpenGL und die Fixed-Function-Pipeline 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

Mehr

Spieleprogrammierung mit DirectX und C++

Spieleprogrammierung mit DirectX und C++ Ulrich Kaiser, Philipp Lensing Spieleprogrammierung mit DirectX und C++ 2D-, 3D- und Netzwerkspiele, viele Spezialeffekte Galileo Press Einleitung 11 Danksagung 13 Vorwort zur zweiten Auflage 14 1 Vorbereitung

Mehr

Spiegelgasse 1 CH 4051 Basel. Vorführung der laufenden Programme im Tutorium Woche 3 (Abgabe ).

Spiegelgasse 1 CH 4051 Basel. Vorführung der laufenden Programme im Tutorium Woche 3 (Abgabe ). UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Spiegelgasse 1 CH 4051 Basel Patrick Kahr (patrick.kahr@unibas.ch) Clemens Büchner (clemens.buechner@unibas.ch) Computer

Mehr

Jens Konerow. Managed DirectX und C#

Jens Konerow. Managed DirectX und C# Jens Konerow Managed DirectX und C# Jens Konerow Managed DirectX und C# Einstieg und professioneller Einsatz Jens Konerow: Managed DirectX und C# Einstieg und professioneller Einsatz ISBN-10: 3-935082-17-4

Mehr

Kapitel 4: Schattenberechnung

Kapitel 4: Schattenberechnung Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler

Mehr

Übungsblatt 10: Klausurvorbereitung

Übungsblatt 10: Klausurvorbereitung Übungsblatt 10: Klausurvorbereitung Abgabe: Dieses spezielle Übungsblatt hat keine Abgabefrist und wird auch nicht korrigiert. Die Lösung gibt es wie immer auf der Homepage der Vorlesung oder in den Übungen

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische

Mehr

Direct3D. (Scherfgen S )

Direct3D. (Scherfgen S ) Direct3D (Scherfgen S. 98-131) Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 14/15 AM3 Hauptseminar Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Mehr

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni 1 Ablauf GPU Programm Vertex und Fragment Shader 2 3 4 5 Image Processing 6 Ablauf GPU Programm Ablauf GPU Programm Vertex und Fragment

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Buffer Der 1-bit Stencil-Buffer Der 8-bit Stencil-Buffer Volumetrische Echtzeitschatten

Mehr

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Probelektion 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

Mehr

Computergrafik SS 2012 Probeklausur Universität Osnabrück Henning Wenke, M. Sc. Sascha Kolodzey, B. Sc., Nico Marniok, B. Sc.

Computergrafik SS 2012 Probeklausur Universität Osnabrück Henning Wenke, M. Sc. Sascha Kolodzey, B. Sc., Nico Marniok, B. Sc. Computergrafik SS 2012 Probeklausur 1 06.07.2012 Universität Osnabrück Henning Wenke, M. Sc. Sascha Kolodzey, B. Sc., Nico Marniok, B. Sc. Aufgabe 1 (19 Punkte) Beantworten Sie die folgenden Fragen prägnant.

Mehr

OpenGL. (Open Graphic Library)

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

Mehr

Architektur moderner GPUs. W. Sczygiol - M. Lötsch

Architektur moderner GPUs. W. Sczygiol - M. Lötsch Architektur moderner GPUs W. Sczygiol - M. Lötsch Überblick Chipentwicklung Aktuelle Designs Nvidia: NV40 (ATI: R420) Vertex-Shader Pixel-Shader Shader-Programmierung ROP - Antialiasing Ausblick Referenzen

Mehr

Wiederholung. Vorlesung GPU Programmierung Thorsten Grosch

Wiederholung. Vorlesung GPU Programmierung Thorsten Grosch Wiederholung Vorlesung Thorsten Grosch Klausur 2 Zeitstunden (26.7., 8:30 10:30 Uhr, G29/307) Keine Hilfsmittel Kein Bleistift / Rotstift verwenden 3 Aufgabentypen Wissensfragen zur Vorlesung (ca. 1/3)

Mehr

3D Programmierpraktikum: Schattenberechnung in Echtzeit

3D Programmierpraktikum: Schattenberechnung in Echtzeit 3D Programmierpraktikum: Schattenberechnung in Echtzeit Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 20. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-04 Kapitel VIII: Per Primitive Operations Primitive I 3 Primitive II Elementare grafische Grundform Besteht in OpenGL aus Folge von 1-3 Vertices

Mehr

3D Programmierpraktikum: OpenGL Shading Language (GLSL)

3D Programmierpraktikum: OpenGL Shading Language (GLSL) 3D Programmierpraktikum: OpenGL Shading Language (GLSL) Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 13. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Zwischenvortrag 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 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

Mehr

Gliederung. Blending Licht Anwendungsbeispiel Optimierung OpenGL heute und morgen Wilfried Mascolus - OpenGL Teil II 2/20

Gliederung. Blending Licht Anwendungsbeispiel Optimierung OpenGL heute und morgen Wilfried Mascolus - OpenGL Teil II 2/20 OpenGL II Gliederung Blending Licht Anwendungsbeispiel Optimierung OpenGL heute und morgen 26.07.10 Wilfried Mascolus - OpenGL Teil II 2/20 Blending Entscheidung, was passiert, wenn sich zwei Objekte überlappen

Mehr

Computergrafik 1 Beleuchtung

Computergrafik 1 Beleuchtung Computergrafik 1 Beleuchtung Kai Köchy Sommersemester 2010 Beuth Hochschule für Technik Berlin Überblick Lokale Beleuchtungsmodelle Ambiente Beleuchtung Diffuse Beleuchtung (Lambert) Spiegelnde Beleuchtung

Mehr

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme

Mehr

Beleuchtungsmodelle und Shading

Beleuchtungsmodelle und Shading Beleuchtungsmodelle und Shading Andreas Spillner Computergrafik, WS 2018/2019 Ziel der Modellierung von Beleuchtung Baut auf dem Kapitel zu Licht und Farben auf. In die 3D-Szene werden Lichtquellen eingebracht.

Mehr

Schattenwurf mit Perspective Shadow Maps

Schattenwurf mit Perspective Shadow Maps 16. April 2010 Xpiriax Software Wer wir sind und was wir machen Hobby-Entwicklerteam, zur Zeit 6 Personen gegründet Anfang 2008 Schwerpunkte: Spiele- & 3D-Engine-Programmierung Ziele: Erfahrung, Arbeitsproben,

Mehr

High Performance Computing Blatt 7

High Performance Computing Blatt 7 Dr. Andreas Borchert Institut für Numerische Mathematik Prof. Dr. Stefan Funken Universität Ulm Prof. Dr. Karsten Urban Sommersemester 03 Markus Bantle, Kristina Steih High Performance Computing Blatt

Mehr

Thema: Hardware-Shader

Thema: 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

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer

Mehr

3D Programmierpraktikum: Szenegraphen und Texturierung

3D Programmierpraktikum: Szenegraphen und Texturierung 3D Programmierpraktikum: Szenegraphen und Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 1. Juni 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum SS2006

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 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

Mehr

3D-Modellierungsprogramme

3D-Modellierungsprogramme 06.06.06 Bastian Schildbach 3D-Modellierungsprogramme mit Gliederung 1. Grundlagen Texture Mapping, Texturkoordinaten, Vertices, Texturaddressierung 2. Mapping-Techniken Bump, Displacement, Normal, Two-Part,

Mehr

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

Spezialprozessoren 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

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Kapitel 1 Parallele Modelle Wie rechnet man parallel? PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische

Mehr

Grundlagen der Spieleprogrammierung

Grundlagen der Spieleprogrammierung Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 8: Hardware Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch (Raytracing,

Mehr

Grafikkarten-Architektur

Grafikkarten-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

Mehr

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

Heute. 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

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Organisatorisches Das Konzept der Szenegraphen Grundlagen Beispiel eines Szenegraphen Transformationen

Mehr

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach Proseminar: Virtuelle Präsenz Vortrag: Steve Rechtenbach Themen: 2/22 Einführung Was ist OpenGL? / Entwicklung Fakten Kleines(!) Beispiel Hello OpenGL Shader Zusammenfassung OpenGL vs Direct3D Einführung:

Mehr

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik)

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik) Game Engine Architecture and Development Effekte (Sound, Partikel, Physik) Wer hat schon was? Sound s Soundsysteme Einfach zu benutzen Leveldesigner müssen sehr einfach Sounds hinzufügen können (Gamplay

Mehr

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg GPU-Versuch andreas.schaefer@cs.fau.de Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte

Mehr

3.6 Schattenberechnung

3.6 Schattenberechnung 3.6 Schattenberechnung Schatten sind für die realistische Darstellung von Szenerien sehr wichtig, da der Mensch aus dem Alltag gewohnt ist, Schatten zu sehen, so dass Bilder ohne Schatten sehr unnatürlich

Mehr

3D-Grafik-Chips. Informatik-Seminar Michael R. Albertin. Betreuer: E. Glatz

3D-Grafik-Chips. Informatik-Seminar Michael R. Albertin. Betreuer: E. Glatz 3D-Grafik-Chips Informatik-Seminar Michael R. Albertin Betreuer: E. Glatz Übersicht Übersicht Ziel Einleitung Chipgrundlagen Funktionen Benchmarks Schluss Ziel Grundlegende Techniken kennen Chips unterscheiden

Mehr

Beleuchtung. in Computerspielen

Beleuchtung. in Computerspielen Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung

Mehr

3.5 Methode des gleitenden Horizonts

3.5 Methode des gleitenden Horizonts 3.5 Methode des gleitenden Horizonts Für Flächen die durch eine Gleichung F (x, y, z) = 0 gegeben sind, lässt sich die Methode des gleitenden Horizonts anwenden. Dabei werden die sichtbaren Teile der Schnitte

Mehr

Speziell-Relativistischer (Flug-) Simulator

Speziell-Relativistischer (Flug-) Simulator Visualisierungsinstitut Universität Stuttgart Speziell-Relativistischer (Flug-) Simulator Wolfgang Knopki, Anton Tsoulos 09. Januar 2015 Wolfgang Knopki, Anton Tsoulos Speziell-Relativistischer (Flug-)

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Organisatorisches Das Konzept der Szenegraphen Grundlagen Beispiel eines

Mehr

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<<

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<< Prozedurale Texturen >>Was nicht passt wird passend gemacht...

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Christina Nell. 3D-Computergrafik

Christina Nell. 3D-Computergrafik Christina Nell 3D-Computergrafik Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52 Inhalt Beleuchtung Shading Texturierung Texturfilterung

Mehr

ANIMATION - GRUNDLAGEN

ANIMATION - GRUNDLAGEN ANIMATION - GRUNDLAGEN Bei CAD-Programmen gibt es meist folgende Verfahren zur Erzeugung von : Festlegung von Schlüsselszenen, aus denen das Programm automatisch Zwischenbilder generiert ( Keyframing )

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung)

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung) Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 (Fortsetzung) 1 OpenGL Aufgaben der GL-Befehle Konfigurieren der Graphics Pipeline Datenübergabe an Server Steuern des Datenflusses Java OpenGL

Mehr

Freiwillige Übungsaufgaben zur selbstständigen Bearbeitung

Freiwillige Übungsaufgaben zur selbstständigen Bearbeitung Freiwillige Übungsaufgaben zur selbstständigen Bearbeitung Veranstaltung: Beleuchtung und Rendering, WiSe 2012/2013 Prof. Dr. Marco Block-Berlitz Grundlagen des Beleuchtungsdesigns 1. Nennen Sie fünf klassische

Mehr

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

DirectX 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

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-19 Die Erde ist eine Scheibe! Die Erde ist eine Kugel! 2012-06-19, H.W., Wörtlich 1992-11-02, Papst J.P. II. Sinngemäß. Kirchengeschichtlicher

Mehr

Georg Molzer 1HDD 3D-Grafikkarten GDV-Hardware

Georg Molzer 1HDD 3D-Grafikkarten GDV-Hardware 3D-GRAFIKKARTEN Einleitung: 3D-Grafikkarten haben in erster Linie den Zweck, den Hauptprozessor beim Darstellen aufwendiger dreidimensionaler Szenarien zu entlasten. Sie übernehmen dabei einen Großteil

Mehr

GPU-Programmierung: OpenCL

GPU-Programmierung: OpenCL Seminar: Multicore Programmierung Sommerstemester 2009 04.06.2009 Inhaltsverzeichnis 1 GPU-Programmierung von Grafikkarten von GPU-Computing 2 Architektur Spracheigenschaften Vergleich mit CUDA Beispiel

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik GLSL Agenda Rendering Pipeline Prozessoren: Vertex Prozessor Fragment Prozessor OpenGL Setup für GLSL Shader-Grundlagen Beispiele Die Rendering-Pipeline

Mehr

Anzeige-Einstellungen Einstellungen in der Konfigurationsdatei DisplayPlugin.ini bearbeiten

Anzeige-Einstellungen Einstellungen in der Konfigurationsdatei DisplayPlugin.ini bearbeiten In der Konfigurationsdatei DisplayPlugin.ini werden Einstellungen für die Anzeige und Darstellung (PAPI) von Video-Streams in dem SeMSy III Workstation Modul Mainviewer, seinen Subviewern und auf Variodecodern

Mehr

Rendering: Lighting and Shading

Rendering: Lighting and Shading Rendering: Lighting and Shading Hauptseminar: How to make a Pixar Movie Inhalt Einführung Was ist Rendering Was ist Reflexionsmodelle Lighting Shading Globale Beleuchtungsmodelle Zusammenfassung 2/53 Inhalt

Mehr

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern 3D Rendering mit PHP Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern Speaker Kore Nordmann Studiert Informatik an der Universität Dortmund Arbeitet als Software

Mehr

5 Mapping-Techniken. 5.1 Motivation

5 Mapping-Techniken. 5.1 Motivation 5.1 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen) glatt im Gegensatz zu wirklich existierenden natürlichen Oberflächen. Die explizite Wiedergabe

Mehr

Universität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( )

Universitä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

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

BlendaX Grundlagen der Computergrafik

BlendaX Grundlagen der Computergrafik BlendaX Grundlagen der Computergrafik Beleuchtungsmodelle (Reflection Models) 16.11.2007 BlendaX Grundlagen der Computergrafik 1 Rendering von Polygonen Der Renderingprozess lässt sich grob in folgende

Mehr

Beleuchtung. Matthias Nieuwenhuisen

Beleuchtung. Matthias Nieuwenhuisen Beleuchtung Matthias Nieuwenhuisen Überblick Warum Beleuchtung? Beleuchtungsmodelle Lichtquellen Material Reflexion Shading Warum Beleuchtung? Tiefeneindruck Realitätsnähe: Reflexionen Spiegelungen Schatten

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

General Purpose Computation on GPUs

General Purpose Computation on GPUs General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1 Übersicht

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar 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

Mehr

Geometry Shader. Ausarbeitung im Rahmen des Seminars Echtzeit Rendering" Von Sebastian Jackel Franz Peschel. Geometry Shader 1

Geometry Shader. Ausarbeitung im Rahmen des Seminars Echtzeit Rendering Von Sebastian Jackel Franz Peschel. Geometry Shader 1 Geometry Shader Ausarbeitung im Rahmen des Seminars Echtzeit Rendering" Von Sebastian Jackel Franz Peschel Geometry Shader 1 Inhalt I Einführung II Facts Renderpipeline III Funktionsweise Geometry Shader

Mehr

Aufbau interaktiver 3D-Engines

Aufbau interaktiver 3D-Engines Aufbau interaktiver 3D-Engines ActorComponents Im Folgenden findet sich eine Übersicht über alle bereits implementierten Actorcomponents der Engine. Dabei werden XML-Elemente, die die Komponente beschreiben

Mehr

Parallele und funktionale Prog. Wintersemester 2012/ Übung Abgabe bis , 10:00 Uhr

Parallele und funktionale Prog. Wintersemester 2012/ Übung Abgabe bis , 10:00 Uhr 9. Übung Abgabe bis 07.01.2013, 10:00 Uhr Aufgabe 9.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

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

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze Mesh-Visualisierung Von Matthias Kostka Übersicht Einführung Streaming Meshes Quick-VDR Rendering virtueller Umgebung Rendering mit PC-Clustern Zusammenfassung 2 Mesh Untereinander verbundene Punkte bilden

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Speicherklassen (1) Lokale Variablen

Speicherklassen (1) Lokale Variablen Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden

Mehr

Universität Trier FB IV Mathematik PS Mathematics for 3D Game Programming & Computer Graphics - WS 07/08 Seminarleiter: Prof. Dr.

Universität Trier FB IV Mathematik PS Mathematics for 3D Game Programming & Computer Graphics - WS 07/08 Seminarleiter: Prof. Dr. The Rendering Pipeline Universität Trier FB IV Mathematik PS Mathematics for 3D Game Programming & Computer Graphics - WS 07/08 Seminarleiter: Prof. Dr. Volker Schulz Referent: Carsten Kurz Datum 25.10.07

Mehr

Digitale Bildverarbeitung - Rechnerübung 3

Digitale Bildverarbeitung - Rechnerübung 3 Digitale Bildverarbeitung - Rechnerübung 3 1. Khoros Zur Durchführung der Rechnerübung wird das Programmpaket KHOROS mit seiner Benutzerschnittstelle Cantata verwendet. Nach der Anmeldung am Rechner durch

Mehr

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 6: Computergrafik und Sprites

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 6: Computergrafik und Sprites Praktikum Grundlagen von Hardwaresystemen Sommersemester 2007 Versuch 6: Computergrafik und Sprites 28. Juni 2007 Fachbereich 12: Informatik und Mathematik Institut für Informatik Professur für Technische

Mehr

Newtek Lightwave Grundlagen der 3D-Vektorgrafik

Newtek Lightwave Grundlagen der 3D-Vektorgrafik Newtek Lightwave Grundlagen der 3D-Vektorgrafik Form und Oberfläche Punkte und Polygone (mindestens 3-seitige Verbindungen zwischen Punkten) sind die Grundlage der Darstellung dreidimensionaler Objekte

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Smart Pointer 1 1. Auflage Inhaltsverzeichnis: 1. Smart Pointer3 2. Vor- Nachteile von Smart Pointer..3 3. auto_ptr..3 4. Umsetzung / Anwendung:.4 5. Wertzuweisung

Mehr

Programmieren I. Kapitel 12. Referenzen

Programmieren I. Kapitel 12. Referenzen Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung

Mehr

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung. Vorlesung vom

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung. Vorlesung vom Computergrafik 2010 Oliver Vornberger Kapitel 18: Beleuchtung Vorlesung vom 08.06.2010 1 Korrektur α Für den Winkel zwischen den normierten Vektoren und gilt: ~v ~w A B C D sin(α) = ~v ~w 0,0 % sin(α)

Mehr

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert. 3.1 Motivation Wichtige Grundlage der Bildwiedergabe auf dem Bildschirm oder anderen Ausgabegeräten sind Koordinatensysteme und Koordinatentransformationen im IR 2 und IR 3. Im allgemeinen unterscheidet

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

Zeiger (engl. Pointer)

Zeiger (engl. Pointer) Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der

Mehr

Übungen zu Computergrafik

Übungen zu Computergrafik Institut für Informatik Universität Osnabrück, 3..6 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~cg Lukas Kalbertodt, B.Sc. Testat bis..6, 4: Uhr Übungen zu Computergrafik Sommersemester 6

Mehr