Einführung in die Computergraphik
SS 2015, 2/1/1
INF-B-420 (Einführung in die Computergraphik) INF, MI
Melden Sie sich bei JExam und OPALfür diesen Kurs an!
klausur
Die Klausureinsicht findet am Montag, den 23.11. von 13.30 bis 14.30 Uhr im Raum 2105 statt. Falls Sie diesen Termin nicht wahrnehmen können, schreiben Sie bitte eine Nachricht an das Sekretariat.
Die Klausur wird am 12.8.2015 in der Zeit von 11:10 Uhr bis 12:40 Uhr stattfinden. Es sind 2 Räume dafür vorgesehen. Der Anfangsbuchstabe Ihres Nachnamens bestimmt in welchem Sie die Prüfung ablegen werden. Teilnehmer mit Nachnamen beginnend mit A-N begeben sich in HSZ/AUDI, Nachnamen O-Z in HSZ/0002.
Bitte beachten Sie, dass Sie sich vorher in jExam für die Klausur anmelden müssen.
Sie können auch an der Klausur teilnehmen, wenn Sie die Übungen nicht bestanden haben. Diese können im folgenden Jahr wiederholt werden. Falls Sie eine ausreichende Punktezahl erreicht haben, ist es allerdings SEHR WICHTIG, dass Sie sich in jExam für das ECG-Praktikum eingeschrieben haben. Nur dann können wir Ihnen die Prüfungsleistung auch bestätigen.
Zur Vorbereitung auf die Klausur bieten wir Ihnen einen von Tutoren betreuten Lernraum in der APB/E006 an. Dieser wird am 05.08.2015 von 13:30 Uhr bis 15:30 Uhr besetzt sein.
Lernmaterialien für die anstehende Klausur finden Sie bei uns im Lehrveranstaltungsarchiv. Auf http://tu-dresden.de/die_tu_dresden/fakultaeten/fakultaet_informatik/smt/cgv/lehre/lehrveranstaltungsarchiv/ss2013/vorlesungen/ecgss13 befindet sich zur Klausurvorbereitung der Fragenkatalog SS2011, Beispielklausuren aus SS2011 und SS2013 sowie allgemeine Hinweise zu den Rechenaufgaben mit Rechenaufgabenarchiv. Auf http://www.inf.tu-dresden.de/index.php?node_id=2957&ln=de ist zudem die Klausur vom SS2010 zu finden. Die Passwörter sind identisch mit dem des aktuellen Semesters.
Die praktischen Übungen in den Rechnerkabinetten E065/E069 beginnen in der Woche vom 20.04.2015, die erste Übungseinführung findet am 16.04.2015 statt!
Achtung: am 16.04.2015 und 23.04.2015 findet in der 5. DS im Raum HSZ/04 neben der Übungseinführung eine Einführung in die C++-Programmierung statt.
DozenT
BETREUER
Dipl.-Medieninf. Joachim Staib
Termine
V Do 4. DS, HSZ/02
U Do 5. DS, HSZ/04 (Link zur Seite)
Praktikum am Montag oder Donnerstag je nach Gruppeneinteilung
- 16.04.15 ... V 4.DS Einführung (script)
- 23.04.15 ... Mathematische Grundlagen der Modellierung (scriptletztes Update 6.5.2015)
- 30.04.15 ... Einführung in die Modellierung (script)
- 07.05.15 ... Rasterisierung (scriptletztes Update 8.5.2015)
- 14.05.15 ... Himmelfahrt
- 21.05.15 ... Affine Transformationen (scriptletztes Update 4.6.2015)
- 28.05.15 ... Pfingsten
- 04.06.15 ... Ansichtstransformationen
- 11.06.15 ... GPU-Programmierung (scriptletztes Update 10.6.2015, altes Tutorial Quellcode)
- 18.06.15 ... Polynomkurven (script)
- 25.06.15 ... Spline-Kurven
- 25.06.15 ... V 5.DS Output-Ausweichtermin: ... Beleuchtungsmodelle (scriptletztes Update 25.6.2015)
- 02.07.15 ... Output
- 09.07.15 ... Raytracing-Verfahren (script)
- 16.07.15 ... Raytracing Schnittberechnungen
- 23.07.15 ... Abschlussveranstaltung mit Klausurvorbereitung
WEITERFÜHRENDE MATERIALIEN
- Fragenkatalog (pdf, Stand 05.06.2015)
- Klausur 2011 (pdf)
- Klausur 2013 (pdf)
-
Programmierung
-
eBooks:
- Eckel, Bruce, Thinking in C++. Sehr gutes, englisch sprachiges Buch zu allen Aspekten von C++. Für Einsteiger geeignet.
-
Vererbung
- Soulie, Juan (2009), C++ Language Tutorial. Ausführliches, englischsprachiges Tutorial zu vielen Aspekten der C++-Programmiersprache und OO-Programmierung.
- Stroustrup, Bjarne (1999), Multiple Inheritance for C++. Paper zur Mehrfachvererbung in C++.
-
Templateprogrammierung
- cplusplus.com (2009), STL-Containers. Übersicht über die Klassentemplate Container-Typen der STL.
- Scheler, Fabian, Ulbrich, Peter und Böhm, Niko (2008), C++ Templates - eine kleine Einführung. Foliensatz zur Einführung in Templateprogrammierung, enthält das Fakultätberechnungs-Beispiel.
- Meyers, Scott (2008), Effektiv C++ programmieren. 3. Auflage. München u.a.: Addison-Wesley. Kapitel 7.8, "Tipp 48: Beachten Sie die Template-Metaprogrammierung" gibt eine kurze und prägnante Übersicht über die Funktionsweise und mögliche Anwendungsfelder der TMP, leider keine Codebeispiele außer Fakultätberechnung.
-
Speicherverwaltung
- Sharon, Yonat (1999), Smart Pointers - What, Why, Which? Artikel über die Vorteile und Funktionsweise von Smart-Pointers mit Code-Beispielen.
-
Kommunikation
- Wikipedia (2009), Event Loop. Das Event-Loop Konstrukt wird erklärt und in verschiedenen APIs dargestellt.
- MSDN (2009), Entering the Message Loop. Der Message Loop der Win32 API.
-
Plugins
- Drysdale, David (2009), Beginner’s Guide to Linkers. Einführung und illustrierter Überblick über die Arbeitsweise von Linkern.
-
eBooks:
-
Modellierung
- Bloomenthal, Jules, Implicit Surfaces. Umfangreiches, englisches PDF zu impliziten Oberflächen.
- Lorensen, Cline (1987), Marching Cubes. Paper von W.Lorensen und H. Cline zum Marching Cubes Algorithmus.
- Newman et al. (2006), Marching Cubes. Umfangreiche Betrachtung (engl.) der Entwicklung des Marching Cubes Algorithmus seit der Veröffentlichung des Papers von Lorensen und Cline (s.o.).
- Wikipedia (2009), Marching Squares.Kurze Beschreibung des Marching Squares Algorithmus
- Foley et al. (1997), Computer Graphics: Principles and Practice (2nd Edition), Kapitel 12.7 Constructive Solid Geometry
-
Transformationen
-
Starrkörpertransformationen
- VisWiki (2009), Rotation, Gimbal Lock, Eulerwinkel, Quaternion. VisualWikipedia enthält umfangreiche Beschreibungen und Videos u.a. zu den Themen Rotation, Gimbal Lock, Eulerwinkel und Quaternionen.
- Foley et al. (1997), Computer Graphics: Principles and Practice (2nd Edition), Kapitel 5 zu geometrischen Transformationen sowie Anhang F zu homogenen Koordinaten und Transformationsmatrizen.
-
Affine Transformationen
- Wolfram Demonstrations Project, Affine Transform.Applet zu affinen Transformationen. Erfordert Mathematica Player
- Universität Tübingen, GRIS/ILO, Affine Transformation. Applet zu affinen Transformationen
-
Starrkörpertransformationen
-
Graphikprogrammierung
-
Rendering Pipeline in der Übersicht
- Woo, M. et al. (1999) OpenGL Red Book, Kapitel 1,Abschnitt „OpenGL Rendering Pipeline“. Präsentiert übersichtsweise die Pipeline und verweist für jeden Teilschritt auf ein entsprechen- des Kapitel in dem Buch.
- Akeley, Kurt und Hanrahan, Pat (2001), CS448A: Real-Time Graphics Architectures. Lehrveranstaltung mit Folien und Links zu relevanten Papers, geht auf sehr viele Aspekte ausführlich ein.
- Segal, Mark und Akeley, Kurt (1994), The Design of the OpenGL Graphics Interface. Silicon Graphics Computer Systems 2011 N. Shoreline Blvd., Mountain View, CA 94039. Beschreibt die Grundlagen des Entwurfs der OpenGL.
-
Clipping
- Bender, M. und Brill, M. (2006), Computergrafik: Ein anwendungsorientiertes Lehrbuch. Hanser-Verlag.
-
Z-Buffer
- Bender, M. und Brill, M. (2006), Computergrafik: Ein anwendungsorientiertes Lehrbuch. Hanser-Verlag.
- The Codermind Team (2008a), Depth Buffer - The gritty details. Geht ausführlich auf die Finessen des Tiefen-Puffers ein.
-
Rendering Pipeline in der Übersicht
-
Rasterisierung
-
Rastern von Linien, Kreisen und Polygonen
- Foley, James (1994), Einführung in die [o. Grundlagen der] Computergrafik: Einführung, Methoden, Prinzipien. Bonn, Paris, Massachusetts u.a.: Addison-Wesley. Interessant in diesem Zusammenhang sind Kapitel 3.2-3.11 (pp. 80-136) und eventuell Kapitel 3.14-3.15 (pp. 140-148). Enthält gute Beispiele und C-ähnlichen Code, deutsche Übersetzung etwas holprig.
- Harrington, Steven (1988), Computergrafik - Einführung durch Programmierung. Hamburg, New York u.a.: McGraw-Hill. Sehr ausführliche Diskussion der mathematischen Grundlagen und viele Listings. Leider merkt man dem Buch das Alter an, die Programmbeispiele sind in Algol-ähnlichem Pseudocode.
-
Füllen von Flächen
- Foley, James (1994) (s.o.) Kapitel 19.5 geht auf Grundlagen ein (Konnektivität, FloodFill, BoundaryFill) zeigt Grundlagen eines Stack-basierten Algorithmus.
- Monkey Blaster Entertainment (2006), Flood-Fill Algorithm in Flash ActionScript. Bietet Floodfill-Pseudocode und Flash-Applet zur Demonstration (4-Nachbarschaft).
- Vandevenne, Lode (2004), Lode’s Computer Graphics Tutorial: Flood Fill. Demonstriert Flood Fill in Code und Bildern.
- Henrich, Dominik (1996), Space-efficient region filling in raster graphics. The visual computer. International journal of computer graphics, 10:4, S. 205–215. Diskutiert weitere Füll-Ansätze mit konstantem Speicherbedarf.
- Glassner, Andrew (2001), Fill ’Er Up! IEEE Comput. Graph. Appl. 21:1, S. 78–85, ISSN 0272–1716. Gibt einen Überblick über verschiedene Füll-Ansätze und deren Anwendungen.
-
Texturierung und Aliasing-Probleme
- Bender, M. und Brill, M. (2006), Computergrafik: Ein anwendungsorientiertes Lehrbuch. Hanser-Verlag. Mapping-Techniken (Kapitel 5.6, S. 297ff.).
- Ebd. (Anti-)Aliasing (Kapitel 5.7, S.309ff.), geht auch auf signaltheoretische Grundlagen ein. Sowohl spatiales als auch temporales Aliasing werden besprochen.
- Foley (1994) Kapitel 14.10. zu Aliasing und Antialiasing.
-
Frequenzanalyse und Mipmapping
- Williams, Lance (1983), Pyramidal parametrics. in: Proceedings of the 10th annual conference on Computer graphics and interactive techniques. ACM New York, NY, USA, S. 1–11.Der Grundlagenartikel zu Mipmapping.
- Woo, M. et al. (1999), OpenGL Programming Guide (Red Book): the official guide to learning OpenGL 1.2. Addison-Wesely, New York. Kapitel 9, Abschnitt „Multiple Levels of Detail“. Anwendung des Mipmappings in OpenGL.
-
Rastern von Linien, Kreisen und Polygonen
-
Kurven
- Demidov, Evgeny (2004), Interactive Introduction to Splines. Beschreibung von Beziérkurven, B-Splines und NURBS mit Hilfe von 2D Java Applets.
- Wolfram Demonstrations Project, De Casteljau Algorithmus.Dieses Applet erleutert den De Casteljau Algorithmus zur Beschreribung von Beziérkurven. Zum Abspielen benötigt man den frei erhältlichen Mathematica Player.
- Brown University, Exploratories, Bezier Splines.Java Applet zu Bezier Splines.
- Universität Tübingen, GRIS/ILO, Beziér Curve/Spline.GRIS/ILO ist eine Sammlung von Applets der Uni Tübingen, u.a. zum Thema Beziérkurven und Splines.
- Foley et al. (1997), Computer Graphics: Principles and Practice (2nd Edition), Kapitel 11 zu Kurven und Flächen.
-
Beleuchtung
-
Farbräume (RGB,HLS,Lab), Farbpaletten
- Wikipedia (2009), Farbraum bzw. color space. Farbräume im Allgemeinen werden erklärt, mit Links zu verschieden Farbmodellen (RGB, HLS etc.).
- Eugene Vishnevsky, Color Space Conversion Applet. Java Applet zum Vergleich der Position einer Farbe in verschiedenen Farbmodellen.
- Foley et al. (1997), Computer Graphics: Principles and Practice, Kapitel 13.3 Color models for raster graphics. Verschiedene Farbmodelle (RGB, CMY, HLS etc.) werden beschrieben.
- Woo et al. (2006), OpenGL Programming Guide (Red Book)(5th Edition),Kapitel 4 Color Kapitel 13.3 Color models for raster graphics. Verschiedene Farbmodelle (RGB, CMY, HLS etc.) werden beschrieben.
- Adobe Technical Guides (2000), Color Models. Detailierter Überblick über verschiedene Farbmodelle (Englisch).
-
Lichtquellen
- Woo et al. (2006), OpenGL Programming Guide (Red Book)(5th Edition), Kapitel 5 zu Beleuchtung
-
Materialien
- The Guerrilla CG Project, Displacement vs. Bump Mapping. Englisches Video-Tutorial über Displacement und Bump Mapping.
- Woo et al. (2006), OpenGL Programming Guide (Red Book)(5th Edition),Kapitel 9 Texture Mapping
-
Beleuchtungsmodelle
- Wikipedia (2009), Beleuchtungsmodell. Überblick über lokale und globale Beleuchtungsmodelle.
- Foley et al (1997), Computer Graphics: Principles and Practice (2nd Edition),Kapitel 16 zu lokalen und globalen Beleuchtungsmodellen.
-
Farbräume (RGB,HLS,Lab), Farbpaletten
-
Raytracing
-
Rekursives Raytracing
- The Codermind Team (2008b), A raytracer in C++ - Introduction - What is ray tracing? sehr gutes Tutorial für einen rekursiven Raytracer in C++ mit vielen Erklärungen. In verschiedenen Ausbaustufen werden Features eines typischen Raytracers erklärt und Implementiert.
-
Strahl–Objektschnitte
- Owen, G. Scott (1999), Ray Object Intersections. Gibt überblicke über viele verschiedene Strahl-Objekt-Schnittmethoden. Leider schon von 1999 und wenig interaktiv.
-
Hierarchischer Strahl Szenen Schnitt
- Smits, Brian (1999), Efficiency Issues for Ray Tracing. Beschreibt grundlegende Idee und verschiedene Möglichkeiten des Tree- Traversals (Depth First, Skip-Pointer).
-
Stochastisches Raytracing
- Shirley, Wang (2003), Distributed Raytracing: Theory and Practice.Englisches Paper von Shirley und Wang über stochastisches Raytracing.
- SIGGRAPH, course notes (2001), Monte Carlo Raytracing.Umfangreiche Sammlung zum Thema Monte Carlo Ray Tracing
- Echtzeit Raytracing
-
Rekursives Raytracing