(5) GPU Programmierung

Größe: px
Ab Seite anzeigen:

Download "(5) GPU Programmierung"

Transkript

1 (5) GPU Programmierung Vorlesung Computergrafik II Stefan Müller Dank an Niklas Henrich, Thorsten Grosch KOBLENZ LANDAU

2 Fantastische Effekte in Echtzeit... Real-Time Fur Over Arbitrary Surfaces, Lengyel et al., 2001 Interactive Screen-Space Accurate Photon Tracing on GPUs, Bürger et al., 2006 Interactive Image-Space Techniques for Approximating Caustics, Wyman, 2006 Studienarbeit Stefan Müller, Non-Photorealistic Rendering mit Hilfe der GPU, 2006 KOBLENZ LANDAU Niklas Henrich - 2 -

3 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) KOBLENZ LANDAU Niklas Henrich - 3 -

4 Die programmierbare Pipeline Vertex Pogram (Vertex Shader) Programm pro Eckpunkt Geometry Program (Geometry Shader) Programm pro Grafikprimitiv Fragment Program (Pixel Shader) Programm pro Pixel KOBLENZ LANDAU Niklas Henrich - 4 -

5 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 KOBLENZ LANDAU Niklas Henrich - 5 -

6 Normale Aufgaben Vertex Program Eckpunkttransformation Weltkoordinaten in Kamerakoordinaten Transformation in kanonisches Volumen Normalentransformation Transponierte Inverse Beleuchtung in Kamerakoordinaten... KOBLENZ LANDAU Niklas Henrich - 6 -

7 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] KOBLENZ LANDAU Niklas Henrich - 7 -

8 Vertex Program schematisch Texturspeicher Position (Welt) Farbe Normale Texturkoordinaten Benutzerdefinierte Attribute Vertex Program Position (kan.vol. w..+w) Farbe Texturkoordinaten Benutzerdefinierte Attribute OpenGL State (Lichtquellen, Materialien, Matrizen) Benutzerdefinierte (uniform) Daten KOBLENZ LANDAU Niklas Henrich - 8 -

9 Eigenschaften Fragment Program Fragment Program Vertex Processor Rasterizer Fragment Processor Arbeitet am Ende der Pipeline Wird für jedes zu zeichnende Fragment (Pixel) aufgerufen Arbeitet nur auf aktuellem Fragment (Pixel) Kein Lesen oder Schreiben auf andere Pixel im Framebuffer Wahlfreier Zugriff auf Texturspeicher KOBLENZ LANDAU Niklas Henrich - 9 -

10 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 KOBLENZ LANDAU Niklas Henrich

11 Fragment Program schematisch Texturspeicher Interpolierte Farbe Interpolierte Texturkoordinaten Interpolierte benutzerdefinierte Attribute Fragment Program Pixelfarbe (Tiefenwert) OpenGL State (Lichtquellen, Materialien, Matrizen) Benutzerdefinierte (uniform) Daten KOBLENZ LANDAU Niklas Henrich

12 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 add r8, c28, -v0 m3x3 r9, r8, c20 dp3 r11.x, r9, r9 rsq r11.y, r11.x mul ot4.xyz, r9, r11.y... ; Scalar for cube map adjustment ; OutPos = ObjSpacePos * Composite WVP-Matrix ;Passthrough texcoord 0 for bump map addressing ;View direction ;Transform view vector from object space to env space ;Magnitude^2 ;1/mag ;Normalize KOBLENZ LANDAU Niklas Henrich

13 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) Brook, Sh Bald: OpenCL KOBLENZ LANDAU Niklas Henrich

14 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 KOBLENZ LANDAU Niklas Henrich

15 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) u = v + w (Vektoraddition) u = cross(v,w) (Kreuzprodukt) f = dot(u,v) (Skalarprodukt) mat4 n, m, o; vec4 u, v, w; float f; Viele weitere mathematische Funktionen sin(x), cos(x), tan(x), KOBLENZ LANDAU Niklas Henrich

16 Swizzle / Masking Swizzle (Komponenten eines Vektors vertauschen) Rechte Seite der Zuweisung u = v.zxyw u u v x v z Masking (Nur in bestimmte Komponenten schreiben) Linke Seite der Zuweisung v.xy = v + n v v n x x x y x v y u v z v y y n y u v w z w v, v w unverändert Skalare Werte mehrfach zuweisen u.xy = dot(v.xyz,w.xyz) u x u u, u z w y v x w x v y w unverändert y v z w z KOBLENZ LANDAU Niklas Henrich

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 KOBLENZ LANDAU Niklas Henrich

18 Ein- und Ausgabeparameter Vertex Shader Eingabe Position (gl_vertex) Farbe (gl_color) Normale (gl_normal) Texturkoordinaten (gl_multitexcoordn) Ausgabe Position (gl_position) Farbe (gl_frontcolor) Texturkoordinaten (gl_texcoord[]) Fragment Shader Eingabe Farbe (gl_color) Texturkoordinaten (gl_texcoord[]) Ausgabe Pixelfarbe (gl_fragcolor) Tiefenwert (gl_fragdepth) Komplette Liste KOBLENZ LANDAU Niklas Henrich

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* Shader compilieren glcompileshader(vertexshader); KOBLENZ LANDAU Niklas Henrich

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); Shader Program Vertex Shader Geometry Shader Fragment Shader KOBLENZ LANDAU Niklas Henrich

21 Uniform Variablen Benutzerdefinierte Daten in Shader laden Innerhalb von Shadern nur Lesezugriff Wert konstant für Grafikprimitiv Applikation (OpenGL Programm) // Program muss aktiv sein gluseprogram(program); // Speicherstelle innerhalb // Shader-Program abfragen GLint loc; loc=glgetuniformlocation(program, "Time"); // Wert setzen gluniform1f(loc, 2.314); Shader uniform float Time; void main() { } KOBLENZ LANDAU Niklas Henrich

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 KOBLENZ LANDAU Niklas Henrich

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; } KOBLENZ LANDAU Niklas Henrich

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 KOBLENZ LANDAU Niklas Henrich

25 Gouraud Shading im Vertex Program Szenario: N Eckpunkt void main() { vec3 normal = normalize(gl_normal); // Falls nicht normiert vec3 lightvec = gl_lightsource[0].position.xyz // Vektor zur gl_vertex.xyz; // Lichtquelle lightvec = normalize(lightvec); float cosinus = dot(normal, lightvec); lightvec gl_frontcolor = gl_frontmaterial.diffuse * gl_lightsource[0].diffuse * cosinus; Lichtquelle // Normalisieren // Empfängercosinus // Farbe berechnen gl_position = ftransform(); // Transformation in kanonisches Volumen } KOBLENZ LANDAU Niklas Henrich

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? KOBLENZ LANDAU Niklas Henrich

27 Werteübergabe von Vertex Program an Fragment Program GLSL Normalen und Position in varying variables ablegen varying variables Benutzerdefinierte Variablen Können beliebige Werte enthalten (Geschwindigkeit, ) Lineare Interpolation zwischen den Eckpunkten KOBLENZ LANDAU Niklas Henrich

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; } KOBLENZ LANDAU Niklas Henrich

29 Phong Shading Fragment Program varying vec4 position; varying vec3 normal; void main() { vec3 normal = normalize(normal); vec3 lightvec = gl_lightsource[0].position.xyz - position.xyz; lightvec = normalize(lightvec); float cosinus = dot(normal, lightvec); } gl_fragcolor = gl_frontmaterial.diffuse * gl_lightsource[0].diffuse * cosinus; KOBLENZ LANDAU Niklas Henrich

30 Vergleich Gouraud Phong Shading KOBLENZ LANDAU Niklas Henrich

31 Was gibt s noch? GPGPU General Purpose Computation on Graphics Processing Unit Grafikkarte für andere Zwecke nutzen Vom Finanzwesen bis zur Strömungssimulation Sehr spannendes und aktives Feld KOBLENZ LANDAU Niklas Henrich

32 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! KOBLENZ LANDAU Niklas Henrich

33 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} nach C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\Include\GL KOBLENZ LANDAU Niklas Henrich

34 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 KOBLENZ LANDAU Niklas Henrich

35 GLEW Libs - Visual Studio 2005 & Projekt Eigenschaften 2. Konfiguration auf Alle Konfigurationen stellen 3. Konfigurationseigenschaften Linker Eingabe Zusätzliche Abhängigkeiten: glew32.lib eintragen KOBLENZ LANDAU Niklas Henrich

36 Literatur OpenGL Shading Language (2nd Edition) Rost et al., Addison-Wesley, 2006 Quick Reference df Tutorials, z.b. KOBLENZ LANDAU Niklas Henrich

GPU Programmierung 12. Vorlesung Photorealistische Computergrafik

GPU 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

Mehr

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

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

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

Grundlagen der Spieleprogrammierung

Grundlagen 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

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

(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

Eine Einführung Computergrafik SS14 Timo Bourdon

Eine 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

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

Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-08

Computergrafik 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

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

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

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

Ü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

Mehr

Seminar: Programmierung von Grafikkarten (SS 2006)

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

Mehr

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

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung

Mehr

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

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

Mehr

Praktikum: Spieleengine im Eigenbau

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

Mehr

Seminar - Paralleles Rechnen auf Grafikkarten

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

Mehr

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

(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

Mehr

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

Asteroids3D Seminar: Game Programming. Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann Asteroids3D Seminar: Game Programming Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann Gliederung 2 1. Live-Demo und Spielidee 2. Softwarearchitektur und Szenengraph Übersicht

Mehr

Projektarbeit: GPU Programmierung

Projektarbeit: 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...

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

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

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

GPU Programmierung. Thorsten Grosch

GPU Programmierung. Thorsten Grosch Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik

Mehr

OpenGL 2.0. ronny_r@gmx.net

OpenGL 2.0. ronny_r@gmx.net Einführung in die Shader Programmierung unter OpenGL 2.0 Projektdaten Projektdaten Projektbezeichnung Projektbetrauter: Einführung in die Shader Programmierung unter OpenGL 2.0 Ronny Rösler ronny_r@gmx.net

Mehr

GPU Programmierung. Thorsten Grosch

GPU Programmierung. Thorsten Grosch Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 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

Masterpraktikum Scientific Computing

Masterpraktikum Scientific Computing Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Prof. Dr. Michael Bader Technische Universität München, Germany Outline Organisatorisches Entwicklung

Mehr

Shader zur Bildbearbeitung

Shader zur Bildbearbeitung 15. Oktober 2009 1 / 23 Übersicht 1 Motivation 2 Grundlagen 3 State of the Art 4 Konzeption 5 Implementierung 6 Benchmarks 7 Fazit 2 / 23 Motivation: GPU >> CPU Moores Law: Hardware verbessert sich rapide

Mehr

Kapitel 5: Graphikhardware und Parallelisierung

Kapitel 5: Graphikhardware und Parallelisierung Kapitel 5: Graphikhardware und Parallelisierung 1 Überblick Taxonomie für Graphikhardware Historie der Graphikhardware Architektur-Beispiele Programmierbare Hardware Taxonomie von Parallelisierungsansätzen

Mehr

Grakkarten - Programmierung

Grakkarten - Programmierung Grakkarten - Programmierung Version 1.3 20.02.2006 Marc Blunck 97129 Diese Ausarbeitung befasst sich mit der Programmierung von Grakprozessoren. meint General Purpose Computation On Graphics

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

Einführung in die Computergrafik

Einführung in die Computergrafik Einführung in die Computergrafik Proseminar Computergrafik Zuse Institut Berlin 22. November 2007 Organisatorisches Informationen rund um s Seminar. http://www.zib.de/hotz/teaching/currentlectures.htm

Mehr

Praktikum Computergrafik

Praktikum 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

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

Texture Based Direct Volume Rendering

Texture Based Direct Volume Rendering Texture Based Direct Volume Rendering Vorlesung: "Advanced Topics in Computer Graphics" cbrak@upb.de 1 Agenda 1. Einleitung Volume Rendering 1.1. Volumendatensatz 1.2. Volumenintegral 1.3. Image order

Mehr

Seminar GPU-Programmierung/Parallelverarbeitung

Seminar GPU-Programmierung/Parallelverarbeitung Seite iv Literaturverzeichnis 1) Bengel, G.; et al.: Masterkurs Parallele und Verteilte Systeme. Vieweg + Teubner, Wiesbaden, 2008. 2) Breshears, C.: The Art of Concurrency - A Thread Monkey's Guide to

Mehr

Seminar: Grafikprogrammierung

Seminar: Grafikprogrammierung Game Developer Converence 08 Seminar: Grafikprogrammierung Alexander Weggerle 17.04.08 Seite 2 Einführung Themenüberblick Organisatorisches Seminarablauf liches Seite 3 Einführung Seminar Motivation Vorbereitung

Mehr

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

19.09.2014. 2D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen 2D-Texturen Texturarten Transformationen Generierung Thomas Jung Reflectance Mapping 3D-Texturen Modellierung von Details erfordert Zeit Darstellung ist aufwendig (langsam) Details belegen Speicherplatz

Mehr

Einfuehrung in OpenGL und Shader

Einfuehrung in OpenGL und Shader Einfuehrung in OpenGL und Shader Michael Bayer 28. September 2005 Inhaltsverzeichnis 1 OpenGL 4 1.1 Einführung............................... 4 1.2 Architektur............................... 4 1.3 Pipeline

Mehr

Computer-Graphik I Transformationen & Viewing

Computer-Graphik I Transformationen & Viewing lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann

Mehr

Globale Beleuchtung. Thorsten Grosch. Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg

Globale Beleuchtung. Thorsten Grosch. Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg Praktikum Globale Beleuchtung Thorsten Grosch Wer bin ich Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg g Davor Studium Informatik TU Darmstadt Fraunhofer IGD Lichtsimulation

Mehr

4. Mensch-Maschine Schnittstellen

4. Mensch-Maschine Schnittstellen 4. Mensch-Maschine Schnittstellen 4.1 Geräte zur Visualisierung Farbmodelle e TFT-Displays 4.2 Grafikkarten Standards für Grafikkarten Aufbau von Grafikkarten VGA 4.3 Grafik-Beschleuniger Grafik-Beschleunigung

Mehr

Photorealistische Computergrafik. Thorsten Grosch

Photorealistische Computergrafik. Thorsten Grosch Photorealistische Computergrafik Thorsten Grosch Worum geht es? Globale Beleuchtung Simulation aller Lichtwege von der Lichtquelle bis zum Auge Indirektes Licht, Spiegelungen, weiche Schatten, Ziele: Photorealistische

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Eine Einführung in die Architektur moderner Graphikprozessoren

Eine Einführung in die Architektur moderner Graphikprozessoren Eine Einführung in die Architektur moderner Graphikprozessoren Seminarvortrag von Sven Schenk WS 2005/2006 Universität Mannheim, Lehrstuhl für Rechnerarchitektur Inhalt Historische Eckpunkte Einführung

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

Proseminar Computergrafik: OpenGL. Marcel Heckel

Proseminar 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

Mehr

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Die wichtigsten Unterlagen/Tools Für das Praktikum Unterlagen/Kenntnisse/Tools wichtig: Datenblatt des AT80USB1287 µc Schaltplan des im Praktikum verwendeten

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware Implementierung und Evaluierung von Video Feature Tracking auf moderner Diplomarbeit vorgelegt von Sebastian Heymann Betreut von Prof. Dr. Bernd Fröhlich Bauhaus Universität t Dr. Aljoscha Smolic Fraunhofer

Mehr

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen Universität Hamburg Fachbereich Informatik Arbeitsbereich Technische Aspekte Multimodaler Systeme Seminar Informatikanwendungen in Nanotechnologien Betreuer: Bernd Schütz Sommersemester 2014 Shadingalgorithmen

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

Gegenüberstellung herkömmlicher Shader- Hochsprachen und der Metasprache Sh bei der GPU Programmierung

Gegenüberstellung herkömmlicher Shader- Hochsprachen und der Metasprache Sh bei der GPU Programmierung Fachbereich 4: Informatik Gegenüberstellung herkömmlicher Shader- Hochsprachen und der Metasprache Sh bei der GPU Programmierung Studienarbeit im Studiengang Computervisualistik vorgelegt von Michelle

Mehr

OpenCL. OpenCL. Boris Totev, Cornelius Knap

OpenCL. OpenCL. Boris Totev, Cornelius Knap OpenCL OpenCL 1 OpenCL Gliederung Entstehungsgeschichte von OpenCL Was, warum und überhaupt wieso OpenCL CUDA, OpenGL und OpenCL GPUs OpenCL Objekte Work-Units OpenCL Adressbereiche OpenCL API Codebeispiel

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de Rendering Grundlagen Version 1.0-2009-04-08 Allgemeine Unterschiede bei Renderern Scanline Rendering Raytrace Rendering Renderlayer Einsatz von Renderlayern Overrides Material Overrides Layer Presets Batch

Mehr

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

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Billboards Letztes Übungsblatt: Meshes & Instancing um dem Terrain zusätzliche Details (Vegtation) hinzuzufügen. Nachteil:

Mehr

computer graphics & visualization

computer graphics & visualization Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

Transformationen im 3D-Raum

Transformationen im 3D-Raum Thomas Jung Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL Geometrietransformationen bilden die Basis für die Computergrafik

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

Mehr

Friedrich Hoermann 12.06.08 Hauptseminar Grafikprogrammierung. Grundlagen und Aufbau einer Grafikkarte

Friedrich Hoermann 12.06.08 Hauptseminar Grafikprogrammierung. Grundlagen und Aufbau einer Grafikkarte Friedrich Hoermann 12.06.08 Hauptseminar Grafikprogrammierung Grundlagen und Aufbau einer Grafikkarte Seite 2 Inhalt - Einleitung - Geschichte - Aufbau der Grafikkarte - Die Grafikpipeline - Ausblick Seite

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

3 Kurzeinführung in Matlab

3 Kurzeinführung in Matlab 3 Kurzeinführung in Matlab Matlab ist ein sehr leistungsfähiges interaktives Programmpaket für numerische Berechnungen. Nutzen Sie dies parallel zu den Vorlesungen. Sie können damit persönlich erfahren,

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg Einführung CUDA Friedrich-Alexander-Universität Erlangen-Nürnberg PrakParRA, 18.11.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell

Mehr

Non-Photorealistic Rendering

Non-Photorealistic Rendering Übersicht 1. Motivation und Anwendungen 2. Techniken - Cel Shading - Konturlinien - Hatching Einführung Traditionelle Computergraphik Ziel: Fotorealismus Einführung Motivation Bewusste Vermeidung von

Mehr

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.

Mehr

Vergleich von Forward und Deferred Rendering

Vergleich von Forward und Deferred Rendering Vergleich von Forward und Deferred Rendering Kamil René König Bachelorarbeit Bachelor Informatik 12.08.2014 Betreuer: Prof. Dr. Detlef Krömker, Dr. Daniel Schiffner Übersicht Motivation Definitionen Forward

Mehr

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in

Mehr

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

C A R L V O N O S S I E T Z K Y. Wavefront OBJ Format. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011 C A R L V O N O S S I E T Z K Y Wavefront OBJ Format Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Motivation 3D-Modelle bestehen i. d. R. aus Tausenden von Dreiecken Händische

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, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

Mehr

Echtzeit-Raytracing algebraischer Flächen auf der Graphics Processing Unit

Echtzeit-Raytracing algebraischer Flächen auf der Graphics Processing Unit Diplomarbeit Echtzeit-Raytracing algebraischer Flächen auf der Graphics Processing Unit Christian Stussak 12. Juli 2007 betreut durch Dr. rer. nat. habil. Peter Schenzel Martin-Luther-Universität Halle-Wittenberg

Mehr

Non-Photorealistic Rendering mit Hilfe der GPU. Studienarbeit

Non-Photorealistic Rendering mit Hilfe der GPU. Studienarbeit Fachbereich 4: Informatik Non-Photorealistic Rendering mit Hilfe der GPU Studienarbeit im Studiengang Computervisualistik vorgelegt von Stefan Müller Betreuer: Prof. Dr.-Ing. Stefan Müller (Institut für

Mehr

C programmieren. Jürgen Wolf

C programmieren. Jürgen Wolf C programmieren Jürgen Wolf Vorwort 11 Kapitel 1: Schnelleinstieg 13 Was sollten Sie bereits können? 14 Was lernen Sie mit diesem Buch? 14 Was benötigen Sie noch? 14 Überblick zu den einzelnen Kapiteln

Mehr

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen. OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.de Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/23 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 6

Mehr

Computer Graphics and Animation in Games

Computer Graphics and Animation in Games Computer Graphics and Animation in Games culling bloom advanced shading Some material based on Michael Wimmer, Michael Kalkusch, Peter Wonka, Francois Faure shadows 1 artificial intelligence? bump maps

Mehr

Computer Graphik (CS231) Installation der Software

Computer Graphik (CS231) Installation der Software UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Bernoullistrasse 16 CH 4056 Basel Clemens Blumer Tobias Maier Fabian Brix http://informatik.unibas.ch/lehre/fs13/cs231/ Computer

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

GPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 12

GPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 12 12 GPGPU-Programming Constantin Timm Informatik 12 TU Dortmund 2012/04/09 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation

Mehr

C A R L V O N O S S I E T Z K Y. Licht & Material. 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. Licht & Material. 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 Licht & Material Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011 Motivation Licht & Material Geometrisch gut aussehende Modelle allein sind nicht

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

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

Inhaltsverzeichnis. V Vorwort 17. V.1 An wen richtet sich dieses Buch? 18. V.2 Ansprüche an den Computer 18. V.4 Bildergalerie 19. V Vorwort 17 V.1 An wen richtet sich dieses Buch? 18 V.2 Ansprüche an den Computer 18 V.3 Website 19 V.4 Bildergalerie 19 V.5 Über den Autor 20 1 Einführung 21 1.1 Installation 21 1.2 Projekttypen 22 1.3

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr