(6) Fortgeschrittene GPU- Programmierung
|
|
- Monica Fischer
- vor 5 Jahren
- Abrufe
Transkript
1 (6) Fortgeschrittene GPU- Programmierung Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich
2 Beleuchtung Vertex void main() { N Eckpunkt Lichtquelle lightvec vec4 vertex = gl_modelviewmatrix * gl_vertex; vec3 normal = normalize(gl_normalmatrix * gl_normal); vec3 lightvector = normalize(gl_lightsource[0].position.xyz - vertex.xyz); vec3 reflectvector = reflect(lightvector, normal); float phi = max( dot(lightvector, normal), 0.0; float psi = max( dot(normalize(vertex.xyz), reflectvector), 0.0) gl_frontcolor = gl_frontmaterial.diffuse * gl_lightsource[0].diffuse * phi + gl_frontmaterial.specular * gl_lightsource[0].specular * pow(psi, gl_frontmaterial.shininess); gl_position = gl_projectionmatrix * vertex; } Thorsten Grosch - 2 -
3 Texturen Im Rahmen der GPU-Programmierung nicht nur zur Speicherung von Farbinformationen gedacht Normalen (Bump-Mapping) Tiefeninformationen (Depth-Peeling) Strahlen (Ray-Tracing) Eigener Datentyp in GLSL sampler1d, sampler2d, sampler3d (1,2 und 3D-Texturen) samplercube (Cube Maps) sampler1dshadow, sampler2dshadow (Depth Maps) Textur wird per uniform-variable an Shader übergeben Niklas Henrich - 3 -
4 Zugriff auf Texturen Texturzugriff in Shader an Position gl_texcoord[0].st uniform sampler2d simpletexture; void main() { vec3 value = texture2d(simpletexture, gl_texcoord[0].st).xyz; } (0,1) (1,1) t (0,0) (1,0) s Niklas Henrich - 4 -
5 Texturen an Shader übergeben Textur generieren und ggf. mit Daten füllen (Applikation) glgentextures(1, &texture); glbindtexture(gl_texture_2d, texture); gltexparameterf(gl_texture_2d,gl_texture_wrap_s,gl_clamp); gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); Textur binden und an Shader übergeben (Applikation) glbindtexture(gl_texture_2d, texture); GLint location = glgetuniformlocation(shaderprogram, "simpletexture"); gluniform1i(location, 0); Sieht komisch aus Niklas Henrich - 5 -
6 Texture Units Was bedeutet die 0 im vorherigen Beispiel? Sie gibt die Texture Unit an, aus der OpenGL die Textur nehmen soll Standardmäßig ist Texture Unit 0 aktiv glbindtexture( ) bindet Textur immer an aktive Texture Unit Beispiel mit zwei Texturen glactivetexture(gl_texture0); glbindtexture(gl_texture_2d, moontex); GLint location = glgetuniformlocation(shaderprogram, "moontex "); gluniform1i(location, 0); glactivetexture(gl_texture1); glbindtexture(gl_texture_2d, startex); location = glgetuniformlocation(shaderprogram, "startex"); gluniform1i(location, 1); Niklas Henrich - 6 -
7 Cube Mapping Eine Form des Environment Mappings Umgebung wird durch 6 Texturen beschrieben Kamera sieht nach vorne, hinten, oben, unten, links und rechts Texturen aus Media-Ordner der DirectX SDK March 2008 Microsoft Corp. Niklas Henrich - 7 -
8 Environment Mapping Simulation von Objekten, die deren Umgebung reflektieren Gespiegelten oder gebrochenen Strahl als look-up in die Cube Map benutzen i n r Vertex Shader r = reflect(i, n); Fragment Shader envcolor = texturecube(envmap,r); Cube Map Niklas Henrich - 8 -
9 Environment Mapping - Ergebnisse r = reflect(i, n) ersetzt durch r = refract(i, n, 1.1) Niklas Henrich - 9 -
10 Multi-Pass Rendering Viele Algorithmen benötigen Zugriff auf die Nachbarn eines Pixels Filter in der Bildverarbeitung Post-Processing Effekte (z.b. Glow-Effekt, siehe Übung) Zugriff auf benachbarte Pixel des Framebuffers innerhalb eines Fragment-Programs nicht möglich Lösung: Multi-Pass Rendering Ergebnis eines Rendering-Schrittes als Eingabe des folgenden Schrittes verwenden Das endgültige Bild entsteht erst nach mehreren Durchläufen Niklas Henrich
11 Multi-Pass Rendering Szene in Textur rendern Textur an Shader-Program übergeben Viewport auf Größe der Textur setzen Bildschirmfüllendes Rechteck zeichnen glbegin(gl_quads); gltexcoord2f(0,0); glvertex2f(-1,-1); gltexcoord2f(1,0); glvertex2f( 1,-1); glend() (-1,1) (0,1) (1,1) (1,1) (-1,-1) (0,0) (1,0) (1,-1) Für jedes Texel der Textur wird genau ein Fragment generiert Zugriff auf Nachbarpixel nun über Texturzugriff Niklas Henrich
12 Full-Screen Quad - Details gldisable(gl_depth_test); glpushattrib(gl_viewport_bit); glviewport(0, 0, width, height); glmatrixmode(gl_modelview); glpushmatrix(); glloadidentity(); glmatrixmode(gl_projection); glpushmatrix(); glloadidentity(); glbegin(gl_quads); gltexcoord2f(0,0); glvertex3f(-1, -1, 0.0f); gltexcoord2f(1,0); glvertex3f(1, -1, 0.0f); gltexcoord2f(1,1); glvertex3f(1, 1, 0.0f); gltexcoord2f(0,1);glvertex3f(-1, 1, 0.0f); glend(); glpopmatrix(); glmatrixmode(gl_modelview); glpopmatrix(); glenable(gl_depth_test); glpopattrib(); Niklas Henrich
13 Mehr Details Textur-Zugriff Die aktuelle Koordinate eines Fragments in Viewport- Koordinaten ([0,Fensterbreite] x [0,Fensterhöhe]) erhält man über gl_fragcoord.xy Bei neueren Grafikkarten können Texel auch direkt mit Integer-Koordinaten im Bereich [0,Texturebreite] x [0, Texturhöhe] angesprochen werden #extension GL_EXT_gpu_shader4 : enable texelfetch2d(texture,ivec2(gl_fragcoord.xy),0); Niklas Henrich
14 Nachbarpixel Wie bestimmt man die Texturkoordinate z.b. des rechten benachbarten Pixels? Falls man texelfetch2d benutzen kann vec4 r = texelfetch2d(texture, ivec2(gl_fragcoord.xy + vec2(1,0)),0); Falls nicht, braucht man die Breite der Textur, z.b. über eine Uniform-Variable uniform float texturewidth; float texturedelta = 1.0 / texturewidth; vec4 r = texture2d(texture, gl_texcoord[0].st + vec2(texturedelta,0)); Niklas Henrich
15 Neulich beim CV-Studenten Brandneue Grafikkarte gekauft und eingebaut GLUT Demoprogramm von den CG-Seiten runtergeladen Programm so geändert, dass genau ein Dreieck gezeichnet wird Frames-per-second (fps) gemessen Niklas Henrich
16 Umfrage FPS für ein Dreieck? A B C fps fps 60 fps Niklas Henrich
17 Der Schock! VSync: Ein ca. 60 fps Vertikale Synchronisation (VSync) Treiber wartet, bis der Monitor das Bild komplett aufgebaut hat Für mehr Geschwindigkeit VSync ausschalten Windows (GLEW) wglswapintervalext(0) VSync: Aus Niklas Henrich
18 Geometry Shader Neue programmierbare Einheit der Grafikpipeline Direkt nach Vertex Shader (vor Clipping etc.) Mit DirectX 10 eingeführt (Shader Model 4.0) Funktionalität in OpenGL über Extension GL_EXT_geometry_shader4 verfügbar Dynamisch neue Geometrie erzeugen Geometrie löschen Niklas Henrich
19 Geometry Shader - Eingabe Arbeitet immer auf gesamten Eingabeprimitiv Mögliche Eingabeprimitive Punkt Linie Dreieck Shader hat Zugriff auf Alle Punkte des Eingabeprimitives Alle direkt benachbarten Punkte Zugriff möglich q2 p2 q1 p1 Benachbartes Dreieck p0 q0 Niklas Henrich
20 Geometry Shader - Ausgabe Ausgabe (beliebig* viele) Punkte Linien (line strips) Dreiecke (triangle strips) Es ist auch möglich, keine Geometrie auszugeben Maximale Anzahl der ausgegebenen Primitive pro Shaderaufruf muss zur Compile-Zeit bekannt sein Je größer diese Zahl, umso stärker sinkt die Performance Ein- und Ausgabetyp können verschieden sein Dreieck als Eingabe Linienzug als Ausgabe Wireframe *beliebig bedeutet bis zum Hardwarelimit Niklas Henrich
21 Geometry Shader neue Befehle EmitVertex() Eckpunkt dem aktuellen Ausgabeprimitiv (z.b. Dreieck) hinzufügen gl_position = vec4(1.0, 0.5, 0.3, 1.0); EmitVertex(); EndPrimitive() Aktuelles Ausgabeprimitiv abschließen Neues Ausgabeprimitiv vom gleichen Typ wird begonnen Ähnlich wie OpenGL-Befehlsreihenfolge: glend(); glbegin( ); Niklas Henrich
22 Beispiel aus Eins mach Drei Geometry Shader: Aus Geometry Shader: Ein Niklas Henrich
23 Beispiel aus Eins mach Drei #version 120 #extension GL_EXT_geometry_shader4 : enable void main() { // 1. Dreieck erzeugen und verschieben for(int i = 0; i < gl_verticesin; i++){ gl_frontcolor = vec4(0,1,0,1); gl_position = vec4(gl_positionin[i].x * 0.5, (gl_positionin[i].y * 0.5) + 0.5, 0, 1); EmitVertex(); } EndPrimitive(); // 2. Dreieck erzeugen und verschieben // 3. Dreieck erzeugen und verschieben. Anzahl der Eckpunkte des Eingabeprimitives Array von Eckpunkten des Eingabeprimitives Niklas Henrich
24 Geometry Shader Ausgabelimit Ein Geometry Shader kann momentan maximal ca. 256 Eckpunkte ausgeben Soll mehr Geometrie erzeugt werden, muss dies in mehreren Schritten geschehen Folgende Funktionalität wird dazu benötigt: Bereits erzeugte Geometrie muss zwischengespeichert werden können Erzeugte Geometrie muss wieder abgerufen werden können Diese Funktionalität wird durch das sogenannte Transform Feedback bereitgestellt Niklas Henrich
25 Transform Feedback Ermöglicht es, Geometrie in Buffer-Objekte zu rendern Fragment Shader wird ausgeschaltet Geometrie kann somit zwischengespeichert werden Inhalt des Buffers kann zu einem späteren Zeitpunkt erneut gerendert werden Niklas Henrich
26 Transform Feedback Vertex Shader und Geometry Shader können Geometrie beliebig verändern Neue Geometrie hinzufügen (GS) Vorhandene Geometrie verschieben (VS + GS) Geometrie löschen (GS) Nachdem gewünschte Geometrie erzeugt wurde Fragment Shader einschalten Geometrie rendern Niklas Henrich
27 Transform Feedback Demo Niklas Henrich
28 Framebuffer Objects (FBOs) Ermöglichen es direkt in Texturen zu rendern Multiple Render Targets (MRT) In einem Schritt in verschiedene Texturen rendern Ohne MRTs müsste die Szene für jede Information (Position, Normale, etc.) neu gerendert werden Render Target 1 (Textur) Fragment Program Position Render Target 2 (Textur) Render Target 3 (Textur) Niklas Henrich
29 FBO Attachments Ein FBO bietet Platz für eine Reihe von Attachments, die an das FBO geknüpft werden können Color Attachment (= Render Target) Texturen In diese wird gerendert Renderbuffer Objects Depth Attachment Falls OpenGL beim Rendern in das FBO einen Tiefentest durchführen soll Stencil Attachment Falls OpenGL beim Rendern in das FBO einen Stenciltest durchführen soll Niklas Henrich
30 FBO Attachments = wird gebunden an Framebuffer Object Color Color Color Color Attachment Textur Color Color Color Color Color Attachment Depth Attachment Stencil Attachment Renderbuffer Object Depth Buffer Stencil Buffer Niklas Henrich
31 Framebuffer Object erstellen Framebuffer Object erzeugen und aktivieren GLuint fbo; glgenframebuffersext(1, &fbo); glbindframebufferext(gl_framebuffer_ext, fbo); Leere Texturen erstellen (wie gehabt, siehe CG1) glgentextures(1, &textureposition); glbindtexture(gl_texture_2d, textureposition); gltexparameteri(gl_texture_2d,gl_texture_mag_filter, GL_NEAREST); gltexparameteri(gl_texture_2d,gl_texture_min_filter, GL_NEAREST); glteximage2d(gl_texture_2d, 0, GL_RGBA32F_ARB, width, height, 0, GL_RGBA, GL_FLOAT, NULL); // Textur texturenormal erzeugen // Niklas Henrich
32 Framebuffer Object erstellen Textur textureposition an ersten Color Attachment Point hängen glframebuffertexture2dext( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, // Erster AttachmentPoint GL_TEXTURE_2D, // 2D-Textur soll angehangen werden textureposition, //.. und zwar diese 0); // MipMap Level ist 0 Textur texturenormal an zweiten Attachment Point hängen glframebuffertexture2dext( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, // Erster AttachmentPoint GL_TEXTURE_2D, // 2D-Textur soll angehangen werden texturenormal, //.. und zwar diese 0); // MipMap Level ist 0 Niklas Henrich
33 In Framebuffer Object rendern OpenGL mitteilen, dass in beide Color Attachments gerendert werden soll glbindframebufferext(gl_framebuffer_ext, fbo); GLenum buffers[2]; buffers[0] = GL_COLOR_ATTACHMENT0_EXT; buffers[1] = GL_COLOR_ATTACHMENT1_EXT; gldrawbuffers(2, buffers); Der Framebuffer wurde nun durch das FBO ersetzt Anschließend Szene rendern Eine glclear( ) löscht nun die Inhalte des aktuell gebundenen FBOs! Niklas Henrich
34 FBO Fragment Shader Im Pixel-Shader kann das Render Target mit gl_fragdata[n] ausgewählt werden Position geht in Color Attachment 0 Normale geht in Color Attachment 1 varying vec4 position; varying vec3 normal; void main() { gl_fragdata[0] = position; gl_fragdata[1] = vec4(normal,0); } Niklas Henrich
35 Anmerkung: Das vorhergehende Beispiel verwendet keinen Tiefenpuffer und somit wird beim Zeichnen auch kein Tiefentest durchgeführt Folgender Code generiert einen Tiefenpuffer und hängt ihn an das FBO (siehe GLuint depthbuffer; glbindframebufferext(gl_framebuffer_ext, fbo); GLuint depthbuffer; glgenrenderbuffersext(1, &depthbuffer); glbindrenderbufferext(gl_renderbuffer_ext, depthbuffer); glrenderbufferstorageext(gl_renderbuffer_ext, GL_DEPTH_COMPONENT, windowwidth, windowheight); glframebufferrenderbufferext(gl_framebuffer_ext, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer); Niklas Henrich
36 Alles OK? Gebundenes FBO prüfen void checkfbo() { // See // for more information GLenum status; status = glcheckframebufferstatusext(gl_framebuffer_ext); switch(status) { case GL_FRAMEBUFFER_COMPLETE_EXT: // Everything's OK break; case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT\n"; break; case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT\n"; break; case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT\n"; break; case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT\n"; break; case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT\n"; break; case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: cout << "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT\n"; break; case GL_FRAMEBUFFER_UNSUPPORTED_EXT: cout << "GL_FRAMEBUFFER_UNSUPPORTED_EXT\n"; break; default: cout << "Unknown ERROR\n"; } } Niklas Henrich
37 Beispielhafter Ablauf: // Framebuffer binden und überprüfen glbindframebufferext(gl_framebuffer_ext, fbo); checkfbo(); Demo Drehender Teapot // FBO Shader verwenden gluseprogram(fboshader); // Inhalt von FBO löschen glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); // Geometrie rendern draw(); // Nicht mehr in das FBO rendern, sondern wieder in den normalen Framebuffer FramebufferglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // Framebuffer löschen glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); // Display-Shader verwenden gluseprogram(displayshader); // Texturen an Shader weitergeben GLint htexture = glgetuniformlocation(displayshader,"texture"); glbindtexture(gl_texture_2d,textureposition); gluniform1i(htexture,0); // Display-Shader aufrufen um FBO Inhalt darzustellen DrawFullScreenQuad(); Niklas Henrich
38 Deferred Shading Ein sehr unscharfer Begriff Im allgemeinen Fall versteht man darunter* Szene in verschiedene Texturen rendern In einem zweiten Schritt auf / mit dem Inhalt der Texturen arbeiten Praktisch jede moderne GPU-Anwendung benutzt irgendeine Form des deferred rendering / shading Im Folgenden wird das Szenario (Beleuchtung von Objekten in einer Szene) vorgestellt, für welches der Begriff am häufigsten verwendet wird *meiner Meinung nach! Niklas Henrich
39 Objekte in Szene beleuchten (ohne Deferred Shading) Eine Möglichkeit Für jede Lichtquelle in der Szene Lichtquelle aktivieren Für jedes Objekt in der Szene Objekt zeichnen Jedes Objekt muss somit #Lichtquellen #Objekte mal gezeichnet (und beleuchtet) werden Manche Objekte werden beleuchtet, obwohl sie vielleicht in einem späteren Schritt von einem anderen Objekt verdeckt werden Niklas Henrich
40 Objekte in Szene beleuchten (ohne Deferred Shading) Eine andere Möglichkeit Für jedes Objekt in der Szene Für jede Lichtquelle in der Szene Lichtquelle aktivieren und Objekt zeichnen Jedes Objekt muss wieder #Lichtquellen #Objekte mal gezeichnet und beleuchtet werden Warum nicht mehrere Lichtquellen gleichzeitig anwenden? Funktioniert bei wenigen Lichtquellen Manche Anwendungen (Spiele) können über hunderte von Lichtquellen verfügen, die gleichzeitig aktiv sind Zu viele Argumente an einen Shader Niklas Henrich
41 Deferred Shading Für jedes Objekt in der Szene Rendere Weltkoordinate, Normale, Farbe etc. in MRTs Für jede Lichtquelle in der Szene Beleuchtung als Postprocess auf den erstellten Texturen Vorteile Jedes Objekt wird genau einmal gezeichnet Es werden nur die tatsächlich sichtbaren Pixel beleuchtet Aufwand: #Objekte + #Lichtquellen anstatt #Lichtquellen #Objekte Niklas Henrich
42 Deferred Shading Objekte rendern Binde ein FBO mit mehreren Texturen (Color Attachments) Schreibe z.b. die folgenden Eigenschaften in die Texturen Texturen werden auch als G-buffer bezeichnet Tiefe Normale Farbe Phong Exponent Niklas Henrich
43 Deferred Shading Weltkoordinate? Falls genügend Platz vorhanden ist, kann die Weltkoordinate in einer eigenen Textur gespeichert werden Ansonsten kann die Position (sprich: Weltkoordinate) aus dem Tiefenwert sowie der Position des Pixels im Framebuffer und der Kamera errechnet werden Trade-off: Speicherverbrauch vs. Rechenlast Anmerkung Normalen: Falls die Normalen normalisiert sind, müssen nur zwei Werte gespeichert werden Der dritte kann aus diesen errechnet werden Das Vorzeichen des dritten Wertes muss bei einem anderen Wert mit abgespeichert werden Z.B. Tiefenwert (ist immer positiv) Niklas Henrich
44 Deferred Shading Beleuchtung Approximiere Lichtkegel durch konvexes Polygon Aktiviere Back-Face Culling Rendere konvexes Polygon Für jedes Pixel, das durch den Lichtkegel überdeckt wird, wird der Lichtquellen- Pixel Shader aktiviert Pixel Shader liest Daten aus G-Buffer aus (Position, Normale, Material etc.) und führt Lichtberechnungen für aktuelles Pixel durch Anmerkung: Wenn kein Back-Face Culling aktiviert ist, wird jedes Pixel doppelt beleuchtet. Der Pixel Shader würde einmal für die Vorderseite und einmal für die Rückseite des Polygons aktiviert. Niklas Henrich
45 Deferred Shading Für die roten Pixel wird der Beleuchtungs -Pixel Shader aktiviert Niklas Henrich
46 Deferred Shading Pixel Shader liest an seiner Position die Informationen aus dem G-Buffer aus und führt Beleuchtungsberechnung durch Position liest Daten Normale Material Niklas Henrich
47 Deferred Shading Probleme Speicherverbrauch des G-Buffers Hohe Bandbreitenausleistung (viele Texturzugriffe) Kein Antialiasing / Multisampling Wird nicht auf den Color Attachments durchgeführt Transparenzen Pro Pixel wird nur das vorderste Objekt gespeichert Niklas Henrich
48 Deferred Shading Demo Niklas Henrich
49 Links Vertex Arrays VBO Geometry Shader Transform Feedback FBO Niklas Henrich
(10) Deferred Shading
(10) Deferred Shading Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich, Gerrit Lochmann Wdh. 1: Framebufferobjects (FBOs) Statt in den Framebuffer direkt zu rendern, kann man Texturen attachen,
MehrGPU Programmierung 12. Vorlesung Photorealistische Computergrafik
GPU Programmierung 12. Vorlesung Photorealistische Computergrafik Thorsten Grosch Standard OpenGL Pipeline verändern Bisher: Jeder glvertex( ) Punkt durchläuft die Standard OpenGL Pipeline Jetzt: Funktionalität
MehrGeometry 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
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
MehrProgrammierpraktikum 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
Mehr3D 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
MehrShader. 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
MehrWiederholung. 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)
MehrOpenGL auf Mac OS X und ios
OpenGL auf Mac OS X und ios Torsten Kammer 28.4.2011 CocoaHeads Aachen Grundlagen API für hardwarebeschleunigte 3D-Grafik Kann auch für schnelles 2D verwendet werden Grundlage von Core Image, Core Animation,
MehrÜ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
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-18 Kapitel XIII Texturing Definition: Textur (Computergrafik) Geometrieunabhängige Oberflächeneigenschaft Typischerweise höher aufgelöst als
MehrProgrammierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Partikelsysteme, Multipass Rendering Kollisionen Rauch Feuer Vulkane Regen Tierschwärme # 2 Eigenschaften Partikelsysteme sind Gruppen von
MehrGPU 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
MehrComputergrafik 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
Mehr3D 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(5) GPU Programmierung
(5) GPU Programmierung Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich, Thorsten Grosch KOBLENZ LANDAU Fantastische Effekte in Echtzeit... Real-Time Fur Over Arbitrary Surfaces, Lengyel
MehrComputergrafik 1 Übung
Prof. Dr. Andreas Butz Dipl.-Medieninf. Hendrik Richter Dipl.-Medieninf. Raphael Wimmer Computergrafik 1 Übung 4 1 Was ist OpenGL? OpenGL = Open Graphics Library API für Echtzeit-3D-Grafik Hardwarebeschleunigt
MehrComputer 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)
MehrEinführung in die API OpenGL
Einführung in die API OpenGL LMU München - LFE Medieninformatik Folie 1 Überblick Was ist OpenGL? OpenGL und Windows 3D Grafik Grundlagen OpenGL benutzen Transformationen, Licht, Texture Mapping Ein kleines
MehrEinführung in GLSL - OpenGL Shading Language. Athanasios Karamalis
Einführung in GLSL - OpenGL Shading Language Athanasios Karamalis Allgemein zur Shader-Programmierung Vor 2001 konnte nur die sogenannte Fixed Functionality der Graphik API und Graphikkarte verwendet werden
MehrAdvanced Computer Graphics 1. Übung
Advanced Computer Graphics 1. Übung M.Sc. Tristan Nauber Advanced Computer Graphics: Übung 1 1 Gliederung 1. Erzeugen, Binden und Löschen von OpenGL Objekten 2. Geometrie: Vertex Arrays, Buffers und Attributes
MehrTexture Mapping Beispiel. Universität Frankfurt
Texture Mapping Beispiel Texture Mapping Warum? - Detailreiche Oberfläche ohne zusätzliche Polygone Texturen I - 1D-Texturen - 2D-Texturen - 3D-Texturen Element der Textur: Texel Texturen II - Änderung
MehrProgrammierpraktikum 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Ü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
MehrSeminar. Echtzeit-Rendering SS Geometry Shader. Franz Peschel
Fachbereich 4: Informatik Seminar Echtzeit-Rendering SS 2008 Geometry Shader vorgelegt von Franz Peschel Betreuer: Prof. Dr. Stefan Müller (Institut für Computervisualistik, AG Computergrafik) Koblenz,
MehrUIKit (Cocoa Touch) Framework für ios Apps. Objective C. Model View Controller Pattern
ios Rendering ios Architektur UIKit (Cocoa Touch) A composable, reusable, declarative, real-world inspired animation, and interaction system Framework für ios Apps Objective C Model View Controller Pattern
MehrTexture Mapping. Texturen
Grundlagen - Eine Textur ist ein Bild, das auf eine Oberfläche einer Geometrie aufgebracht ist - erlauben eine realistischere Darstellung von Oberflächen - können auf alle Primitive, nicht nur Polygone
MehrComputergrafik 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
MehrDie 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
MehrProgrammierpraktikum 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
MehrComputergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1
Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 1 Einordnung 2 Über OpenGL API für Rastergrafik Prozedural Hardwarenah Plattform-, Betriebssystem- und Sprachunabhängig Spezifikationen variieren
MehrHLSL PostProcess Shaders
HLSL Advanced 1 HLSL PostProcess Shaders Einführung PostProcess Effekte werden erst nach dem Rendern aller Objekte angewandt, nämlich auf das Render-Target (daher der Name). Das Spektrum der Möglichkeiten
MehrKapitel 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
Mehr2. Übung zu Computergraphik 2
2. Übung zu Computergraphik 2 Stefan Müller KOBLENZ LANDAU Aufgabe 1: Accumulation Buffer Tiefenunschärfe mit Accumulation Buffer simulieren Idee: Szene von versch. Kamerapositionen (from) aus betrachten
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
Mehr3D 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
MehrComputergrafik II. OpenGL Einführung
Computergrafik II OpenGL Einführung OpenGL Rein prozedurales Interface Keine direkten Klassen/Objekte Verwaltung von OpenGL-Strukturen mittels Identifier Explizites funktionales Erzeugen/Löschen von Objekten
Mehr(5) GPU Einführung. Vorlesung Computergraphik II Stefan Müller. Dank an Markus Geimer, Thorsten Grosch und Niklas Henrich KOBLENZ LANDAU
(5) GPU Einführung Vorlesung Computergraphik II Stefan Müller Dank an Markus Geimer, Thorsten Grosch und Niklas Henrich Die Rendering-Pipeline Rasterisierung (2D) Zerlege den 2D-Polygonzug in Pixel Pro
MehrDiplomarbeit. 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(9) Modernes OpenGL. Vorlesung Computergraphik III S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU
(9) Modernes OpenGL Vorlesung Computergraphik III S. Müller OpenGL Shading Language (GLSL) Teil des OpenGL 2.0 Standards Syntax orientiert sich an C / C++ Funktionen Einfache Datentypen (float, int, bool)
MehrProgrammierpraktikum 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
MehrChristina 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
MehrProgrammierpraktikum 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
MehrProseminar: 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:
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 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
Mehr7.1 Polygon Offset. Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit:
7.1 Polygon Offset Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit: - Polygone sollen einmal als Fläche und einmal in Wireframe-Darstellung
MehrLichtquellen und Beleuchtung
void glshademodel(glenum model) - Setzt das angegebene Shading Model (GL_FLAT oder GL_SMOOTH) 1 Lokales Beleuchtungsmodell in OpenGL für n Lichtquellen k s 2 Normalenvektoren - Modelview-Transformation
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
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
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
MehrVisualisierung und Volumenrendering 2
Institut für Computervisualistik Universität Koblenz 06.07.2012 Inhaltsverzeichnis 1 Literatur 2 Wiederholung 3 DVR Volumen Literatur Real-Time Volume Graphics Volumenrendering CG Shader Beispiele Volumen
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
Mehr- Für die beiden zu überblendenden Farben (source und destination) werden Blending-Faktoren besimmt (S r
3.2 Blending Anwendung - Kombination der Farbinformation eines neu zu zeichnenden Objekts (Source) mit der Farbinformation, die bereits im Framebuffer gespeichert ist (Destination) - Darstellung teilweise
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(7) Schatten. Vorlesung Computergrafik II. Dank an Niklas Henrich, Thorsten Grosch, Matthias Raspe U N I V E R S I T Ä T KOBLENZ LANDAU
(7) Schatten Vorlesung Computergrafik II Dank an Niklas Henrich, Thorsten Grosch, Matthias Raspe KOBLENZ LANDAU Geometrie zeichnen Immediate Mode (glbegin/glend) Vertex Arrays Vertex Buffer Objects (VBO)
MehrComputergrafik 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.
MehrMichael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER
Michael Bender Martin Brill Computergrafik Ein anwendungsorientiertes Lehrbuch 2., überarbeitete Auflage HANSER Inhaltsverzeichnis Vorwort XI 1 Einleitung 1 1.1 Die Entwicklung der Computergrafik 1 1.2
MehrComputergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis
Computergrafik Michael Bender, Manfred Brill Ein anwendungsorientiertes Lehrbuch ISBN 3-446-40434-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40434-1 sowie
MehrComputergrafik 2008 Oliver Vornberger. Kapitel 19: Texturing
Computergrafik 2008 Oliver Vornberger Kapitel 19: Texturing 1 Strukturierte Fläche Beispiel: Steinmauer lege viele kleine rote Rechtecke auf ein großes weißes Rechteck: Nachteil: aufwändige Geometrie 2
MehrAufgabe 2: Zweifacher de Casteljau
Aufgabe 2: Zweifacher de Casteljau Evaluationen auf Bézier Patches können mit dem de Casteljau Algorithmus berechnet werden Prinzipiell einfach den normalen Algorithmus für Kurven mehrfach anwenden, denn
Mehr2.10 Lichtquellen und Beleuchtung
2.10 Lichtquellen und void glshademodel(glenum model) - Setzt das angegebene Shading Model (GL_FLAT oder GL_SMOOTH) 2_4-1 2.10 Lichtquellen und Lokales smodell in OpenGL für n Lichtquellen k s 2_4-2 2.10
MehrGraphische Primitive Punkte Geradenstücke (Liniensegmente) Polygone
Graphische Primitive Punkte Geradenstücke (Liniensegmente) Polygone Punkte glvertex3f (50.0, 50.0, 0.0) glvertex2f (50.0, 50.0) glvertex4f (50.0, 50.0, 0.0,1.0) GLfloat vect[3] = {50.0, 50.0, 0.0} glvertex3fv
MehrAdvanced Computer Graphics 4. Übung
Advanced Computer Graphics 4. Übung M.Sc. Tristan Nauber Advanced Computer Graphics: Übung 4 1 Gliederung 1. OpenGL Shader Programme 2. Erzeugen, Kompilieren und Linken von OpenGL Shadern 3. Vertex Shader
MehrBitmaps. - Definition eigener Zeichenmuster - Definition eigener Schriften. Zeichnen auf Pixel- und Bitmap-Ebene
Bitmaps Grundlagen - Bitmaps sind rechteckige Arrays bestehend aus 0 und 1 Werten - Sie dienen als Zeichenmaske in einem rechteckigen Fensterbereich - Bei gegebner Zeichenfarbe f=(r, B, G) werden die Pixel,
MehrGliederung. 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
Mehr2.10 Lichtquellen und Beleuchtung
2.10 Lichtquellen und void glshademodel(glenum model) - Setzt das angegebene Shading Model (GL_FLAT oder GL_SMOOTH) 2-1 2.10 Lichtquellen und Lokales smodell in OpenGL für n Lichtquellen k s 2-2 2.10 Lichtquellen
MehrComputergrafik SS 2008 Oliver Vornberger. Kapitel 21: OpenGl
Computergrafik SS 2008 Oliver Vornberger Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0);
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
Mehr(12) Wiederholung. Vorlesung Computergrafik T. Grosch
(12) Wiederholung Vorlesung Computergrafik T. Grosch Klausur 18.7. 14 16 Uhr, Hörsaal 5 (Physik) 2 Zeitstunden 8 Aufgaben Drei Aufgabentypen Übungsaufgaben Wissensfragen zur Vorlesung Transferfragen Unterschiedlicher
Mehr3D Programmierpraktikum: Geometrische Transformationen, Materialien und Beleuchtung
3D Programmierpraktikum: Geometrische Transformationen, Materialien und Beleuchtung Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 8. Mai 26 LMU München Medieninformatik Boring/Hilliges
MehrGrundlegende Darstellungsfunktionen
Grundlegende Darstellungsfunktionen Zeichenoperationen und Transformationen Die folgenden Folien beschreiben eine Reihe von grundlegenden Darstellungsfunktionen, die zur Modellierung einer Szene und zur
MehrÜbung: Computergrafik 1
Prof. Dr. Andreas Butz Prof. Dr. Ing. Axel Hoppe Dipl.-Medieninf. Dominikus Baur Dipl.-Medieninf. Sebastian Boring Übung: Computergrafik 1 Geometrische Primitive OpenGL Zeichenarten Kurven Primitive Übung
MehrSpieleprogrammierung 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
Mehr2.10 Lichtquellen und Beleuchtung
2.10 Lichtquellen und void glshademodel(glenum model) - Setzt das angegebene Shading Model (GL_FLAT oder GL_SMOOTH) 2-1 2.10 Lichtquellen und Lokales smodell in OpenGL für n Lichtquellen k s 2-2 2.10 Lichtquellen
MehrComputergraphik Grundlagen
Computergraphik Grundlagen XI. Rasterung Füllen von Polygonen Prof. Stefan Schlechtweg Hochschule nhalt Fachbereich Informatik Inhalt Lernziele 1. Zu lösendes Problem 2. Füllen von Pixelmengen 1. Rekursiver
MehrKapitel 21: OpenGl 1
Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0); 50 Befehle in OpenGl Utility
MehrProseminar: Virtuelle Präsenz
Montag 20. Juni 2005 Proseminar: Virtuelle Präsenz Steve Rechtenbach steve.rechtenbach@informatik.uni-ulm.de Inhaltsverzeichnis Einführung 3 Beispiel 4 Das Architecture Review Board 6 Shader - OpenGL Shading
MehrEnvironment Mapping v 1.1
DirectX Tutorial: Environment Mapping 1 Environment Mapping v 1.1 Einleitung Zuerst einmal sei gesagt, dass es verschiedene Arten von Environment Mapping gibt. Hier wird aber nur das Cubic Environment
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
MehrOpenGL 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
MehrGeometrische Primitive und Hidden Surface Removal
C A R L V O N O S S I E T Z K Y Geometrische Primitive und Hidden Surface Removal Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Wiederholung Geometrische Primitive in OpenGL Mit
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
MehrSpiegelgasse 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
MehrAufgabe. - Beispiel "Fahrt durch Blutgefäße":
Aufgabe Modellierung der statischen Anteile Ihres Projekts - Definieren Sie die statischen Anteile der Szene Ihres Projekts - Erstellen Sie eine geeignete Klassen-Repräsentation - Beispiel "Fahrt durch
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 2012-07-09 Noch Kapitel XVI Realtime Ray Tracing KD-Tree: Surface Area Heuristic Ziele der Aufteilung in Child Nodes: 1. Möglichst gleich viele Objekte
MehrOpenGL. (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
MehrDie Shading Language
Seminar Analyse, Planung und Konstruktion computergraphischer Systeme Die Shading Language Stephan Brumme 7. Januar 2004 Lehrstuhl für Computergraphische Systeme 7. Januar 2004 Stephan Brumme: Die OpenGL
Mehr7.4 Tesselierung von Polygonen
Anwendungsgebiet - OpenGL kann direkt nur einfache konvexe Polygone anzeigen - Polygone sind einfach, wenn - sie selbstdurchdringungsfrei sind - sie keine doppelten Ecken enthalten - an einer Ecke genau
MehrC for Graphics Benjamin Rommel Seminar 'Paralleles Rechnen auf Grafikkarten' Sommersemester 2009 Betreuer: Julian M.
C for Graphics Benjamin Rommel 12.05.2009 Seminar 'Paralleles Rechnen auf Grafikkarten' Sommersemester 2009 Betreuer: Julian M. Kunkel 'C for Graphics', Benjamin Rommel, SS 2009 Inhaltsübersicht Gliederung
MehrJava 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002
Java 3D Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Virtual World Koordinaten System Grundlagen zur Definition visueller Objekte Shape3D Unterklasse der Leaf-Klasse Eigenschaften des visuellen
MehrSS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION
SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION (until Geforce 7 Series) 1 ÜBERSICHT Grafikpipeline Verlagerung
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
MehrGrundlagen der Spieleprogrammierung
Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 3: Das Ideal - Photorealistisch Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal:
MehrC A R L V O N O S S I E T Z K Y. Texture-Mapping. 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 Texture-Mapping Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Grundlagen Graphische Primitiven werden mit Bildern versehen Eingeführt von Dr. Edwin
MehrÜbung: Computergrafik 1
Prof. Dr. Andreas Butz Prof. Dr. Ing. Axel Hoppe Dipl.-Medieninf. Dominikus Baur Dipl.-Medieninf. Sebastian Boring Übung: Computergrafik 1 Projektionen und Transformationen Qt Kontextmenüs Koordinatensysteme
MehrGraphische Datenverarbeitung und Bildverarbeitung
Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Verdeckung Graphische DV und BV, Regina Pohle, 20. Verdeckung Einordnung in die Inhalte der Vorlesung Einführung mathematische und
Mehr