GPU Programmierung 12. Vorlesung Photorealistische Computergrafik
|
|
- Reinhardt Melsbach
- vor 7 Jahren
- Abrufe
Transkript
1 GPU Programmierung 12. Vorlesung Photorealistische Computergrafik Thorsten Grosch
2 Standard OpenGL Pipeline verändern Bisher: Jeder glvertex( ) Punkt durchläuft die Standard OpenGL Pipeline Jetzt: Funktionalität verschiedener Stufen der Pipeline kann verändert werden Veränderungen sind möglich auf Ebene von (Eck-)Punkten (Vertex-Program) Grafikprimitiven (Geometry-Program) Pixeln (Fragment-Program) Thorsten Grosch - 2 -
3 Die programmierbare Pipeline Vertex Program (Vertex Shader) Programm pro Eckpunkt Geometry Program (Geometry Shader) Programm pro Grafikprimitiv Fragment Program (Pixel Shader) Programm pro Pixel Thorsten Grosch - 3 -
4 Eigenschaften Vertex Program Arbeitet nur auf einem Eckpunkt Keine Information über Topologie (andere Eckpunkte) Keine Punkte erzeugen oder löschen Wahlfreier Zugriff auf Texturspeicher Auslesen des abgespeicherten Wertes an einer beliebigen Position innerhalb einer Textur (Textur = 2D Array mit Daten) Thorsten Grosch - 4 -
5 Normale Normale Aufgaben Vertex Program Eckpunkttransformation Weltkoordinaten in Kamerakoordinaten (Modelview) Transformation in kanonisches Volumen (Projection) Normalentransformation Transponierte Inverse Beleuchtung in Kamerakoordinaten Automatische Generierung von Texturkoordinaten... Thorsten Grosch - 5 -
6 Was gehört nicht ins Vertex Program Clipping am kanonischen Volumen (-w +w) Perspektivische Division (x/w, y/w, z/w) (Color Clamping an [0,1]) Thorsten Grosch - 6 -
7 Vertex Program schematisch Texturspeicher Position (Welt) Position (kan.vol. w..+w) Farbe Normale Vertex Farbe Texturkoordinaten Program Texturkoordinaten Benutzerdefinierte Benutzerdefinierte Attribute t Attribute OpenGL State (Lichtquellen, Materialien, Matrizen) Benutzerdefinierte (uniform) Daten Thorsten Grosch - 7 -
8 Eigenschaften Fragment Program Fragment Program Vertex Rasterizer Fragment Processor Processor Arbeitet am Ende der Pipeline Wird für jedes zu zeichnende e Fragment (Pixel) aufgerufen Arbeitet nur auf aktuellem Fragment (Pixel) Kein Lesen oder Schreiben auf andere Pixel im Framebuffer Eingabe: Interpolierte Werte aus Eckpunkten Wahlfreier Zugriff auf Texturspeicher Thorsten Grosch - 8 -
9 Fragment Program Normale Aufgaben Fragment Program Farbe des Pixels festlegen Texturzugriff Effekte (z.b. Nebel) Was ein Fragment-Program nicht leistet Depth-Test Stencil-Test Alpha-Blending Wird nach den Fragment- Programmen durchgeführt Thorsten Grosch - 9 -
10 Fragment Program schematisch Texturspeicher Interpolierte Farbe Interpolierte Texturkoordinaten Interpolierte benutzerdefinierte Attribute Fragment Program Pixelfarbe (Tiefenwert) OpenGL State (Lichtquellen, Materialien, Matrizen) Benutzerdefinierte (uniform) Daten Thorsten Grosch
11 GPU programmieren - Damals Programmierung in Maschinensprache Programme werden sehr schnell unübersichtlich... vs.1.0 def c94, 0.18f, 0.18f, 0.18f, 0.18f m4x4 opos, v0, c16 mov ot0.xy, v7 ; Scalar for cube map adjustment ; OutPos = ObjSpacePos * Composite WVP-Matrix ;Passthrough texcoord 0 for bump map addressing add r8, c28, -v0 ;View direction m3x3 r9, r8, c20 ;Transform view vector from object space to env space dp3 r11.x, r9, r9 ;Magnitude^2 rsq r11.y, r11.x ;1/mag mul ot4.xyz, r9, r11.y ;Normalize... Thorsten Grosch
12 GPU programmieren - Heute Programmierung in einer Hochsprache Compiler zur Übersetzung in Maschinensprache Erste Shading-Languages RenderMan (Pixar 1988) Stanford Real-Time Shading Language (2001) Aktuell Cg (NVIDIA, OpenGL und DirectX) HLSL (Microsoft, DirectX) OpenGL Shading Language (GLSL) Weitere (GPGPU) Cuda (NVIDIA), CTM (ATI) Brook, Sh Thorsten Grosch
13 OpenGL Shading Language (GLSL) Teil des OpenGL 2.0 Standards Syntax orientiert sich an C / C++ Funktionen Einfache Datentypen (float, int, bool) Strukturen Arrays Bedingungen Schleifen Aber: Keine Zeiger Beliebige Länge der Shader-Programme Thorsten Grosch
14 Sprachmerkmale von GLSL Vektoren und Matrizen vec4 (Vektor bestehend aus 4 float-werten), mat4 (4x4 float-matrix), Operationen auf Vektoren und Matrizen (SIMD) o = m * n (Matrixmultiplikation) mat4 n, m, o; u = v + w (Vektoraddition) vec4 u, v, w; u = cross(v,w) (Kreuzprodukt) float f; f = dot(u,v) (Skalarprodukt) u = mod(v, w) (komp.weises Modulo % für float Vektoren) Viele weitere mathematische h Funktionen sin(x), cos(x), tan(x), p g p p g _quickref.pdf Thorsten Grosch
15 Swizzle / Masking Swizzle (Komponenten eines Vektors vertauschen) Rechte Seite der Zuweisung u = v.zxyw u = v u = v x z y x u = v z y u = v Masking (Nur in bestimmte Komponenten schreiben) Linke Seite der Zuweisung v.xy = v + n v v + n = v = v + n v, v x x y y y z w Skalare Werte mehrfach zuweisen x u.xy = dot(v.xyz,w.xyz) u = u = v w + v w + v w x y x x y y z z u, u z u w unverändert w w unverändert Thorsten Grosch
16 Typkonvertierung Typkonvertierung Anders als in C int i; float f = float(i); // Fehler bei f = i Konvertierung muß meist von Hand gemacht werden Beispiel vec4 v = vec4(1.0, 2.0, 3.0, 1.0); vec3 v2 = v.xyz; // Fehler bei v2 = v Thorsten Grosch
17 Ein- und Ausgabe bei Shader Programmen Zugriff auf Eigenschaften des aktuellen Eckpunktes bzw. Fragments über vordefinierte Variablen Ausgabe der Shader-Programme über vordefinierte Ausgabe-Variablen Ausgabe bei Vertex-Programmen Werte werden linear interpoliert Farbe, Texturkoordinaten, Zugriff in Fragment Shader auf interpolierte Werte Zusätzlich eigene Ausgabe-Variablen varying variables später mehr dazu Thorsten Grosch
18 Ein- und Ausgabeparameter Vertex Shader Eingabe Ausgabe Position (gl_vertex) (g_ Position (gl_position) Farbe (gl_color) Farbe (gl_frontcolor) Normale (gl_normal) Texturkoordinaten (gl_texcoord[]) Texturkoordinaten (gl_multitexcoordn) Fragment Shader Eingabe Ausgabe Farbe (gl_color) Texturkoordinaten (gl_texcoord[]) Pixelfarbe (gl_fragcolor) Tiefenwert (gl_fragdepth) Komplette Liste Thorsten Grosch
19 GLSL Programmierung Shader Objekt erzeugen vertexshader = glcreateshader(gl_vertex_shader); Source-Code bereitstellen Quelltext aus Textdatei einlesen und übergeben glshadersource(vertexshader, 1, &sourceptr, NULL); sourceptr vom Typ char*( string ) Shader compilieren glcompileshader(vertexshader); Thorsten Grosch
20 GLSL Programmierung Shader Program Objekt erzeugen program = glcreateprogram(); Shader Program mit Shadern bestücken glattachshader(program,vertexshader); Program linken gllinkprogram(program); Program benutzen gluseprogram(program); Zurück zur OpenGL Fixed-Function Pipeline gluseprogram(0); Fehlerabfrage: siehe Beispielprogramme Shader Program Vertex Shader Geometry Shader Fragment Shader Thorsten Grosch
21 Uniform Variablen Benutzerdefinierte Daten in Shader laden Innerhalb von Shadern nur Lesezugriff Wert konstant für Grafikprimitiv Parameter mit seltener Änderung, z.b. Timer Applikation (OpenGL Programm) // Program muss aktiv sein Shader gluseprogram(shader); uniform float Time; // Speicherstelle innerhalb void main() // Shader-Program abfragen { GLuint loc; loc=glgetuniformlocation(shader, "Time"); } // Wert setzen gluniform1f(loc, 2.314); Wenn der String nicht gefunden wird, dann wird loc = -1 zurückgegeben Thorsten Grosch
22 Zugriff auf OpenGL-State Zugriff über vordefinierte Uniform-Variablen Werden automatisch gesetzt Beispiele gl_modelviewmatrix gl_modelviewprojectionmatrix gl_projectionmatrix gl_modelviewmatrixinversetranspose gl_lightsource[0..n] gl_frontmaterial Thorsten Grosch
23 Minimales GLSL-Programm Vertex-Shader void main() { gl_position = gl_modelviewprojectionmatrix * gl_vertex; gl_frontcolor = gl_color; } Fragment-Shader void main() { gl_fragcolor = gl_color; } Thorsten Grosch
24 Einfache Beleuchtung mit GLSL Beleuchtung passiert im Standard OpenGL Vertex Program Bei eigenem Vertex Program muss Beleuchtung selbst programmiert werden Normale Beleuchtung mit OpenGL Transformation in Kamerakoordinaten Transformation der Normalen mit transponierter Inverse Beleuchtung pro Eckpunkt in Kamerakoordinaten Vereinfachte Variante 1 Licht Beleuchtung in Weltkoordinaten Nur diffuse Beleuchtung Thorsten Grosch
25 Gouraud Shading im Vertex Program Szenario: N Eckpunkt lightvec Lichtquelle void odmain() { vec3 normal = normalize(gl_normal); // Falls nicht normiert vec3 lightvec = gl_lightsource[0].position.xyz // Vektor zur gl_vertex.xyz; // Lichtquelle lightvec = normalize(lightvec); // Normalisieren float cosinus = dot(normal, lightvec); // Empfängercosinus gl_frontcolor = gl_frontmaterial.diffuse * // Farbe berechnen gl_lightsource[0].diffuse * cosinus; gl_position = ftransform(); // Transformation in kanonisches Volumen } ftransform(): Fixed-Function-Pipeline-Transform Entspricht gl_modelviewprojectionmatrix * gl_vertex, aber evtl. andere Rundungsgenauigkeit Thorsten Grosch
26 Phong Shading Beleuchtung pro Pixel im Fragment Program Normalen müssen interpoliert werden Problem mit OpenGL Normalen werden nach der ModelView-Transformation weggeworfen Position des Eckpunktes wird nach dem Clipping weggeworfen Normalen und Position müssen an Fragment Program weitergegeben werden Nur wie? Thorsten Grosch
27 Werteübergabe von Vertex Program an Fragment Program GLSL Cg Normalen und Position in varying variables ablegen varying variables Benutzerdefinierte Variablen Können beliebige Werte enthalten (Geschwindigkeit, ) Lineare Interpolation zwischen den Eckpunkten varying variables existieren dort nicht Normale und Position in Texturkoordinaten ablegen Texturkoordinaten t werden analog zu den varying variables zwischen den Eckpunkten interpoliert Thorsten Grosch
28 Phong Shading Vertex Program varying vec4 position; varying vec3 normal; void main() { position = gl_vertex; normal = gl_normal; gl_position = gl_modelviewprojectionmatrix * gl_vertex; } Thorsten Grosch
29 Phong Shading Fragment Program varying vec4 position; varying vec3 normal; void main() { vec3 normal = normalize(normal); vec3 lightvec = gl_lightsource[0].position.xyz iti - position.xyz; lightvec = normalize(lightvec); float cosinus = dot(normal, lightvec); } gl_fragcolor = gl_frontmaterial.diffuse * gl_lightsource[0].diffuse * cosinus; Thorsten Grosch
30 Vergleich Gouraud Phong Shading Thorsten Grosch
31 Texturen Im Rahmen der GPU-ProgrammierungProgrammierung 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 i an Shader übergeben Thorsten Grosch
32 Zugriff auf Texturen Texturzugriff in (Fragment) Shader an Position gl_texcoord[0].st uniform sampler2d simpletexture; void main() { vec3 value = texture2d(simpletexture, gl_texcoord[0].st).xyz; } Thorsten Grosch
33 Zugriff auf Texturen Alternativ: Texturzugriff über Integer Pixel Koordinaten (funktioniert nur bei neueren Grafikkarten) gl_fragcoord.xy ist die Pixelposition des aktuellen Fragments Typischer Zugriff bei Deep Framebuffer uniform sampler2d simpletexture; void main() { ivec2 pixelcoords = ivec2(gl _ FragCoord.xy); vec3 value = texelfetch2d(simpletexture, pixelcoords,0); } Thorsten Grosch
34 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); TEXTURE TEXTURE gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); LINEAR); Textur binden und an Shader übergeben (Applikation) glbindtexture(gl_texture_2d, texture); GLint location = glgetuniformlocation(shaderprogram, "simpletexture"); gluniform1i(location, 0); Sieht komisch aus Übergibt aktuell gebundene Textur Thorsten Grosch
35 Mehrere Texturen übergeben glgentextures (1, &positiontextureid); glbindtexture (GL_TEXTURE_2D, positiontextureid); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glgentextures (1, &normaltextureid); glbindtexture (GL_TEXTURE_2D, normaltextureid); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gltexparameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glactivetexture(gl_texture0); glbindtexture (GL_TEXTURE_2D, positiontextureid); glactivetexture(gl_texture1); TEXTURE1); glbindtexture (GL_TEXTURE_2D, normaltextureid); Aktuelle Textureinheit festlegen Thorsten Grosch
36 Mehrere Texturen übergeben GLint p_location = glgetuniformlocation(shaderprogram, positiontexture"); gluniform1i(p_location, 0); GLint n_location = glgetuniformlocation(shaderprogram, normaltexture"); gluniform1i(n_location, 1); Die Nummer i entspricht hier der Textur, die mit glactivetexture(gl_texture<i>) gesetzt wurde Thorsten Grosch
37 Multi-Pass Rendering Viele Algorithmen benötigen Zugriff auf die Nachbarn eines Pixels Filter in der Bildverarbeitung Post-Processing 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 Thorsten Grosch
38 Multi-Pass Rendering Szene normal rendern Framebuffer auslesen und in Textur kopieren 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 Thorsten Grosch
39 Bsp. Multi-Pass Auf Original addieren (Bild aus GPU Gems) Glühende Teile in Textur rendern Horizontaler Filter auf Textur anwenden Vertikaler Filter auf Textur anwenden Ein Filter benötigt Informationen über Nachbarpixel Bild muß als Textur vorliegen, da kein Zugriff auf Nachbarpixel im Framebuffer möglich Glow Effect, siehe Übung Thorsten Grosch
40 Frame Buffer Objects Direktes Rendern in Textur Bild wird nicht angezeigt Kein Kopiervorgang nötig für Framebuffer Textur Die Alternative glcopyteximage2d( ) kopiert den Framebufferinhalt in eine Textur Bedingungen Mind. 1 Color Textur muß gesetzt sein Größe für alle Texturen muß definiert und gleich sein Thorsten Grosch
41 FrameBufferObjects // FBO generieren glgenframebuffersext (1, &myfb); // als aktuellen FBO setzen glbindframebufferext (GL_ FRAMEBUFFER_ EXT, myfb); // Textur zuweisen glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, _ colortextureid, 0); glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, depthtextureid, 0);. glbindframebufferext (GL_FRAMEBUFFER_EXT, myfb); // FBO aktivieren // alles hier wird in die Textur gezeichnet (und ist nicht direkt sichtbar!) glbindframebufferext (GL_ FRAMEBUFFER_ EXT, 0); // FBO deaktivieren Thorsten Grosch
42 Beispiele für GPU Programmierung:Normal Mapping Unebenheiten auf Oberflächen durch Veränderungen der Normalen simulieren Oberflächendetails müssen nicht durch zusätzliche Geometrie dargestellt werden Normalen zur Beleuchtung pro Pixel aus Textur (Normal Map) auslesen Thorsten Grosch
43 Normal Mapping - Koordinatensystem Alle an der Beleuchtung beteiligten Vektoren Normale aus Textur (n r ) Vektor zur Lichtquelle (l r ) r Vektor zum Augpunkt (e) müssen im gleichen Koordinatensystem vorliegen In welchem Koordinatensystem soll n r liegen? Welt- oder Objektkoordinaten Bei Objektbewegungen müssen alle Normalen der Normal Map mit verschoben werden Normalen müssten zur Beleuchtung pro Pixel in Kamerakoordinaten umgerechnet werden Normal Map wäre nicht wiederverwendbar schlechte Wahl Niklas Henrich
44 Tangent Space Tangente (x-richtung) Binormale (y-richtung) Normale (z-richtung) Lokales Koordinatensystem pro Polygon Gleiches Koordinatensystem, in dem n r definiert ist Normal Map kann wiederverwendet werden Grober Ablauf Vertex Shader transformiert l r und e r in Tangent Space Vertex Shader übergibt transfomierte Vektoren an Fragment Shader (lineare Interpolation) Pixel Shader liest Normale n r aus Textur aus und führt Lichtberechnung mit interpolierten l r und e r durch Thorsten Grosch
45 Cube Mapping Eine Form des Environment Mappings Umgebung wird durch 6 Texturen beschrieben Kamera mit 90 Öffnungswinkel sieht nach vorne, hinten, oben, unten, links und rechts Texturen aus Media-Ordner der DirectX SDK March 2008 Microsoft Corp. Thorsten Grosch
46 Environment Mapping Simulation von Objekten, die deren Umgebung reflektieren Gespiegelten oder gebrochenen Strahl als look-up in die Cube Map benutzen i r n r r r Vertex Shader r = reflect(i, n); Fragment Shader envcolor = texturecube(envmap,r); t Cube Map Thorsten Grosch
47 Environment Mapping - Ergebnisse r = reflect(i, n) ersetzt durch r = refract(i, n, 1.1) Thorsten Grosch
48 Multiple Render Targets (MRTs) Render Target Speicher, in den die Ausgabe des Fragment Shaders geschrieben wird (ähnlich dem Frame Buffer) Verschiedene Render Targets können gleichzeitig g als Ausgabe des Fragment Shaders gebunden werden Geometrie muß nur einmal durch die Pipeline Ermöglichen die Ausgabe verschiedener Informationen in einem Schritt Fragment Program Normale Render Target 1 Render Target 2 Render Target 3 Thorsten Grosch Deep Fram ebuffe r
49 Multiple Render Targets // MRT FBO for position/normal/color glgenframebuffersext (1, &mrtfb); glbindframebufferext (GL_FRAMEBUFFER_EXT, mrtfb); glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, viewerpositiontextureid, 0); glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, viewernormaltextureid, 0); glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_TEXTURE_2D, viewercolortextureid, 0); glframebuffertexture2dext (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, depthtextureid, 0); GLenum buffers[3] = {GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_COLOR_ATTACHMENT2_EXT}; gldrawbuffers(3, buffers); glbindframebufferext (GL_FRAMEBUFFER_EXT, 0); Reihenfolge der Buffer Thorsten Grosch
50 Multiple Render Targets // MRT Vertex Shader // MRT Fragment Shader varying vec4 position; varying vec4 position; varying vec3 normal; varying vec3 normal; varying vec4 color; varying vec4 color; void main() { position = gl_vertex; normal = gl_normal; color = gl_color; } gl_position = ftransform(); void main() { gl_fragdata[0] = position; gl_fragdata[1] = vec4(normal, 0.0); gl_fragdata[2] = color; } Thorsten Grosch
51 Literatur OpenGL Shading Language (2nd Edition) Rost et al., Addison-Wesley, 2006 Quick Reference df Tutorials, z.b. Was man sonst noch mit der GPU anstellen kann (General Purpose GPU) Lineare Algebra, Voxelisierung, Physik Simulation, Partikel, Thorsten Grosch
52 GLSL Funktionalität nutzbar machen GLSL ab OpenGL 2.0 verfügbar GLSL auch als OpenGL Extension verfügbar Damit es auch auf älteren Karten (hoffentlich) läuft Extension mit Hilfe von GLEW (OpenGL Extension Wrangler) nutzbar machen Einfach, bequem und plattformunabhängig Ablauf 1. GLEW includen (vor GLUT!) 2. GLUT initialisieren und Fenster anlegen 3. GLEW initialisieren 4. OpenGL 2.0 Support abfragen 5. Siehe ShaderFramework in der Übung! Thorsten Grosch
53 GLEW installieren - Visual Studio GLEW von laden 2. Binaries Version für Windows wählen 3. GLEW entpacken 4. Datei GLEW\bin\glew32.dll nach C:\Windows\System32 kopieren 5. Datei GLEW\lib\glew32.lib nach C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\Lib 6. Dateien GLEW\include\GL\{glew.h wglew.h} g nach C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\Include\GL Thorsten Grosch
54 GLEW installieren - Visual Studio GLEW von laden 2. Binaries Version für Windows wählen 3. GLEW entpacken 4. Datei GLEW\bin\glew32.dll nach C:\Windows\System32 kopieren 5. Datei GLEW\lib\glew32.lib nach C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib kopieren 6. Dateien GLEW\include\GL\{glew.h wglew.h} nach C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\GL kopieren Thorsten Grosch
55 GLEW Libs - Visual Studio 2005 & Projekt Eigenschaften 2. Konfiguration auf Alle Konfigurationen stellen 3. Konfigurationseigenschaften Linker Eingabe Zusätzliche Abhängigkeiten: glew32.lib eintragen Debugger für GLSL: glsldevil, Uni Stuttgart Thorsten Grosch
(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
Mehr(6) Fortgeschrittene GPU- Programmierung
(6) Fortgeschrittene GPU- Programmierung Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich Beleuchtung Vertex void main() { N Eckpunkt Lichtquelle lightvec vec4 vertex = gl_modelviewmatrix
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
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
Mehr(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,
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 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
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)
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
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
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
MehrMedizinische Visualisierung
Medizinische Visualisierung Vorlesung 6 05.12.2012, Universität Koblenz-Landau Dr. Matthias Raspe SOVAmed GmbH Agenda Grundlagen GPU-Programmierung Evolution Moderne OpenGL-Programmierung Shaderprogrammierung
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
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
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
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
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
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
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
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
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
MehrSoftwareprojekt Spieleentwicklung
Softwareprojekt Spieleentwicklung Prototyp I (2D) Prototyp II (3D) Softwareprojekt 12.04. 19.04. 26.04. 03.05. 31.05. Meilenstein I 28.06. Meilenstein II Prof. Holger Theisel, Tobias Günther, OvGU Magdeburg
MehrÜ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
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
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
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
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,
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
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
MehrGL ShadingLanguage(GLSL)
Was ist GLSL C/Java ähnliche Hochsprache zur Erstellung von GPU-basierter Software (Shader) An die Open Graphics Library (OpenGL) gebunden Darstellung komplexer 2D- und 3D-Szenen auf Basis von Echtzeitberechnungen
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,
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
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 Partikelsysteme, Multipass Rendering Kollisionen Rauch Feuer Vulkane Regen Tierschwärme # 2 Eigenschaften Partikelsysteme sind Gruppen von
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
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
MehrEine Einführung Computergrafik SS14 Timo Bourdon
Eine Einführung Computergrafik SS14 Timo Bourdon Organisatorisches Übung am Freitag den 11. Juli entfällt! Zum OpenGL-Übungsblatt OpenGL 3.0 oder höher notwendig (Shading Language 1.50 oder höher) CIP
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
MehrComputergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester 2014. Version: 24. März 2014
Peter Rösch Hochschule Augsburg University of Applied Sciences Sommersemester 2014 Version: 24. März 2014 Sommer 2014, HS Augsburg, Peter Rösch Inhalt [1] 1. Einführung 2. WebGL und GLSL 3. Geometrie und
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
Mehr7/5/07. Beispiel: Hello_GLSL. Setzen von "uniform"-variablen. Inspektion der Parameter eines GLSL-Programms. Attribut-Variablen: Uniform-Variablen:
Beispiel: Hello_LSL Inspektion der Parameter eines LSL-Programms Attribut-Variablen: glprogramiv() : liefert die Anzahl aktiver attribute -Parameter gletactiveattrib() : liefert Info über ein bestimmtes
MehrBeispiel: Hello_GLSL 7/5/07. Inspektion der Parameter eines GLSL-Programms. Attribut-Variablen: Uniform-Variablen:
Beispiel: Hello_LSL lighthouse_tutorial/hello_glsl*. Zachmann omputer-raphik 2 - SS 07 Shader 49 Inspektion der Parameter eines LSL-Programms Attribut-Variablen: glprogramiv() : liefert die Anzahl aktiver
MehrNumerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006
12. Juni 2006 Bibliothek für Lineare Algebra GPGPU-Programming: Low-Level High-Level Bibliothek Bibliothek für Lineare Algebra Gliederung 1 Bibliothek für Lineare Algebra 2 Skalare Bibliothek für Lineare
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
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
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
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.
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
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
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
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
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
MehrComputergrafik 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
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
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
MehrGeneral 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
MehrGrundlagen der Spieleprogrammierung
Grundlagen der Spieleprogrammierung Teil I: 3D-Graphik Kapitel 9: Engines, Cg und anderes Peter Sturm Universität Trier Outline 1. Übersicht und Motivation 2. Mathematische Grundlagen 3. Das Ideal: Photorealistisch
MehrÜbersicht 1. Anzeigegeräte 2. Framebuffer 3. Grundlagen 3D Computergrafik 4. Polygongrafik, Z-Buffer 5. Texture-Mapping/Shading 6. GPU 7. Programmierbare Shader 1 LCD/TFT Technik Rotation der Licht-Polarisationsebene
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
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:
MehrGPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1
GPGPU Basiskonzepte von Marc Kirchhoff 29.05.2006 GPGPU Basiskonzepte 1 Inhalt Warum GPGPU Streams, Kernels und Prozessoren Datenstrukturen Algorithmen 29.05.2006 GPGPU Basiskonzepte 2 Warum GPGPU? Performance
MehrProzedurale Texturen >>Was nicht passt wird passend gemacht...<<
Prozedurale Texturen >>Was nicht passt wird passend gemacht...
MehrComputergrafik 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
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
MehrSpezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe
Grafikprozessoren Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe 2D: Berechnung der Bildes aus einfachen Grafikprimitiven 3D: Bildaufbau aus räumlicher Beschreibung
MehrRST-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
MehrD-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen
2D-Texturen Texturarten Abbildung Transformationen Generierung Thomas Jung Reflectance Mapping 3D-Texturen Modellierung von Details erfordert Zeit Darstellung ist aufwendig (langsam) Details belegen Speicherplatz
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
MehrOpenGL ES 2.0. OpenGL ist eine Bibliothek zur Ansteuerung von Grafikhardware
Begriffsbestimmung Was ist OpenGL (Open Graphics Library) OpenGL ist eine Bibliothek zur Ansteuerung von Grafikhardware Plattform- und Programmiersprachenunabhängig Darstellung komplexer 2D- und 3D-Szenen
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
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
MehrBeleuchtung. in Computerspielen
Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung
MehrJens 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
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
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
MehrQuellen (1) Motivation (1) Quellen (2) Vertex- und Pixelshader für Echtzeit- Rendering von Glas und Wasser
Vertex- und Pixelshader für Echtzeit- Rendering von Glas und Wasser Quellen (1) Seminar Physically-based methods for 3D games and medical applications Wintersemester 02/03 Thomas Rusterholz NVIDIA GForce
MehrQuellen (2) Motivation (1) Quellen (1)
Vertex- und Pixelshader für Echtzeit- Rendering von Glas und Wasser Seminar Physically-based methods for 3D games and medical applications Wintersemester 02/03 Thomas Rusterholz Quellen (2) MPI (Max-Planck-Institut)
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
MehrComputergrafik Universität Osnabrück, Henning Wenke,
Computergrafik Universität Osnabrück, Henning Wenke, 212-5-7 Noch Kapitel III: Transformationen 2D Rotation um freies Rotationszentrum y α P(p x, p y ) Ziel: Rotiere Punkte r i um Winkel α um P und erhalte
MehrEchtzeit Videoverarbeitung
Erzeugung von 3D Darstellungen Herbert Thoma Seite 1 Gliederung 3D Transformationen Sichtbarkeit von 3D Objekten Beleuchtung Texturen Beispiele: SGI Infinite Reality 2, PC 3D Hardware Seite 2 3D Transformationen
MehrSeminar - Paralleles Rechnen auf Grafikkarten
Seminar - Paralleles Rechnen auf Grafikkarten Seminarvortrag: Übersicht über die Programmierung von Grafikkarten Marcus Schaber 05.05.2009 Betreuer: J. Kunkel, O. Mordvinova 05.05.2009 Marcus Schaber 1/33
MehrHeute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)
t.jung@fhtw-berlin.de Heute Programmierbare Hardware-Shader Thomas Jung Architektur moderner Grafikkarten Rendering von Polygonlisten mit DirectX9 Vertex- und Pixel(Fragment) shader Motivation Spiele kommen
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
MehrPraktikum Computergrafik
Praktikum Computergrafik Steven Schlegel Abteilung für Bild- und Signalverarbeitung Betreuer: Steven Schlegel (schlegel@informatik.uni-leipzig.de) Einführung in OpenGL und GLSL OpenGL OpenGL (Open Graphics
MehrComputergrafik Universität Osnabrück, Henning Wenke, 2012-05-08
Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-08 Noch Kapitel IV: OpenGL Zielsetzungen Hardwarenah aber unabhängig Verschiedene Anwendungsbereiche Wissenschaft, Visualisierung & Entwicklung
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
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
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
MehrInhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?
Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und
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
Mehr3D-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,
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
MehrDetails und Vergleich von GPU-Shader-Systemen. wichtige Details und Vergleich der Shaderhochsprachen GLSL, Cg und Sh
Details und Vergleich von GPU-Shader-Systemen wichtige Details und Vergleich der Shaderhochsprachen GLSL, Cg und Sh Historisches Cook and Perlin gelten als die Pioniere, wenn es um Shader Berechnungen
MehrProjektarbeit: GPU Programmierung
Projektarbeit: Martin Christen, martin.christen@stud.fhbb.ch Tobias Egartner, t.egartner@bluewin.ch Pietro Zanoni, zanonip@gmx.ch Betreuer: M. Hudritsch Seite 1/65 Inhaltsverzeichnis 1. Ziele dieser Projektarbeit...
MehrSeminar: Programmierung von Grafikkarten (SS 2006)
Seminar: Programmierung von Grafikkarten (SS 2006) Shader Christian Niemand (nemojr@gmx.de) Johannes Spohr (jspohr@student.uni-kassel.de) Universität Kassel, FB 16 Research Group Programming Languages
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
Mehr