Computergraphik - WS 22/23
Diese Vorlesung soll eine Einführung in die theoretischen und methodischen Grundlagen der Computergraphik geben, als auch die Grundlagen für die praktische Implementierung von computergraphischen Systemen legen.
Der Schwerpunkt liegt auf Algorithmen und Konzepten zur Repräsentation und Visualisierung von polygonalen, 3-dimensionalen graphischen Szenen. Die Übungsaufgaben werden teils theoretisch, teils praktisch sein, wobei die praktischen Aufgaben gewisse Programmierfähigkeiten in C++ verlangen. Ich empfehle den Besuch des "Propädeutikums C/C++" vor der Computergraphik-Vorlesung. Die theoretischen Aufgaben setzen teilweise einfache Matrix-Vektor-Rechnung voraus.
Bemerkung: in der Vorlesung wird nicht die Benutzung von fertiger Software zur Modellierung, Animation, oder Bildbearbeitung (z.B. Photoshop, Blender, Maya, Cinema4D, etc.) behandelt! Wir beschäftigen uns mit den Algorithmen, die hinter diesen Programmen stecken.
Aus dem Inhalt:
- Gerätetechnische Grundlagen
- Mathematisch-geometrische Grundlagen
- OpenGL 3 und die programmierbare Pipeline (evtl. auch C++ Wiederholung)
- 2D Algorithmen der Computergraphik (Scan Conversion, Visibility Computations, etc.)
- Theorie der Farben und Farbräume
- 3D Algorithmen der Computergraphik (Transformationen, Beleuchtung, etc.)
- Texturierung
- Techniken zum Echtzeit-Rendering
Aktuelles
Achtung Raumänderung: der Slot am Donnerstag (8 ct) findet jetzt in MZH 1090 statt!
Technische "Sprechstunde" bei Andre und Roland im Büro (MZH 3450 und 3550) jeweils direkt nach den Tutorien (für ca 30 Minuten). Außerdem jeden Freitag von 16-17 Uhr via Discord im Voice-Channel (und nach Absprache im Büro).
CG1 Discord: https://discord.gg/YGUZFxf
Klausur: 14.3., 11:00 , im HS 1010 (Keskdose, Kleiner Hörsaal)
Folien
Die folgende Tabelle wird die behandelten Themen und die
dazugehörigen Folien, Übungsaufgaben enthalten.
Die Spalte "Video" enthält gelegentliche Videos, die ihr bitte vorab zur Vorbereitung eines bestimmten Kapitels anschauen möget (ich kündige diese im Normalfall an).
Beachte:
Die Videos im H.265/HEVC Codec (mp4 Container) laufen im Safari,
die im VP9 Codec (webm Container) laufen in allen anderen Browsern.
(H265 läuft unter Windows in Edge nur buggy.)
Zur Not muss man sie zuerst herunterladen (rechts-klick)
und mit VLC abspielen.
Woche | Thema | |
---|---|---|
1. |
Organisation, Einführung, Geschichte der CG, Display-Technik: Display-Technologien (CRT, LCD, DLP), Raster- und Vektor-Graphik, der Frame-Buffer, Video-Controller und Videosignale, color lookup table, Buffering-Varianten (double buffering, triple buffering), Synchronisation-Verfahren (VSYNC, GSYNC, et al.), Critical Flicker Frequency, Gammakorrektur |
|
2. | Geometrie: geometrische Bedeutung des Skalar- und Kreuzproduktes, Anwendung Umkugel zu 3 Kugeln, Konstruktion eines Koordinatensystems, Flächeninhalt von Dreieck und Polygonen, geometrische Prädikate, Konvexität, Volumen von Spat und Tetraeder, parametrische Darstellung von Linie und Ebene, lineare Interpolation, implizite Ebenengleichung, Dreiecke. | |
3. | Graphik-Pipeline & OpenGL: Übersicht über die Graphik-Pipeline, Sichtweisen der Pipeline (Operationen, Datenfluß, Shader-Stufen), fixed-function pipeline, programmable pipeline, immediate mode versus retained mode, vertex array objects, vertex buffer objects. | |
4. |
Shader Programming:
vertex processor, fragment processor,
Einführung in GLSL,
Uniform- und Attribut-Variablen,
einfache Beipsiele,
Geometrie-Modifikation,
Toon- and Gooch-Shader.
Transformationen: Koordinatensysteme und Transformation in der Pipeline, Prinzip der Animation, elementare Transformationen (Rotation, Skalierung, Scherung, Spiegelung, Translation), Concatenation, affine Abbildungen, homogene Koordinaten, |
|
5. |
Transformationen:
row-major/column-major,
Transformation von Normalen,
starre Transformationen,
relative Bewegungen,
hierarchische Transformationen,
Objekthierarchien und Matrix-Stack,
Hand-Eye Calibration.
Rasterisierung von Linien und Anwendungen: gitterbasierter Floating-Point-Algorithmus, Interpolation entlang der Linie, Anwendung auf Raycasting zum Terrain-Rendering, Anwendung auf Continuous Collision Detection mit Voxmap-Pointshell-Verfahren, |
|
6. | Baryzentrische Koordinaten: baryzentrische Kombinationen, affine Abbildungen, konvexe Hülle, Isolinien der baryzentrischen Koordinaten in einem Dreieck, Berechnungsmethoden, baryzentrische Interpolation, Anwendungen: Punkt-in-Dreieck-Test, Rasterisierung Dreiecke (Algo von Pineda), Kürzeste Distanz Punkt-Dreieck, Dreieck-Dreieck-Schnittest, Mesh Simplification | |
7. | Visibility Computations: Painter's Algorithm, Z-Buffer, Interpolation der Z-Werte, Z-Fighting, Depth-of-Field Rendering, Depth Complexity & Overdraw, Hierarchischer Z-Buffer, Implementierung in Hardware, Performance-Trick "Early Z-Pass", Object-Space- & Image-Space-Algorithmen, BSP-Tree, depth sorting using BSP, Warnock-Algorithmus, Quadtree und Octree, | |
8. | Visibility Computations: Stencil-Buffer, Rendering von Spiegeln mittels Stencil-Buffer, Shadow-Volumes, Rendering von Schatten mittels Shadow-Volume-Technik und Stencil-Buffer. | |
9. |
Projektionen & Perspektive: Kamera-Transformation,
orthographische Projektion, perspektivische Projektion,
Eigenschaften der perspektivischen Projektion,
(allgemeine projektive Abbildungen),
Multi-Perspective
Farben: Licht, Lichtquellen, Lichtquellen-Parameter, Chromatizität, Reflectance spectrum, Aufbau des Auges, Human Spectral Sensitivity, wahrgenommener Stimulus, Metamere, |
|
10. | Farben (cont'd): Grassmann'sche Experimente und Gesetze, wahrgenommene Gleichheit von Spektren, die "Sensor-Abbildung", Farb-Basis-Wechsel, Definition des Begriffes "Farbe", die Matching Curves, CIEXYZ-Farbraum, Chromatizitätsdiagramm, Gamut, Gegenfarbenmodell, Farbraum/Farbmodell, Farbmodelle RGB, CMY, HSV, HSL, Color-Maps, Interpolation von Farben, Abstand zwischen Farben, uniforme Farbräume, CIE Lab-Farbraum, Farbtransfer. | |
11. | Lighting & Shading: Arten von Lichtquellen, diffuse Reflexion, spiegelnde Reflexion, Phong-Beleuchtungsmodell, Blinn-Phong-Modell, BRDF's, Lafortune-Modell, Disney-Shading-Modell, Flat-/Gouraud-/Phong-Shading, Mach-Bänder, Per-Pixel-Lighting/-Shading, deferred shading, two-sided lighting, | |
12. |
Rotationen allgemein:
Euler-Winkel,
Gimbal Lock,
Rotation um beliebige Achse mittels Basiswechsel,
Berechnung einer Rot.matrix für beliebige Achse im Raum,
Zusammenhang zwischen orthogonalen Matrizen und Rotationen,
Quaternionen,
Darstellung und Durchführung von Rotationen mittels Quaternionen,
Interpolation von Orientierungen mittels Quaternionen,
Texturierung: Grundbegriffe, diskrete & prozedurale Texturen, formale Definition, Texturkoordinaten (stückweise lineare Parametrisierung), Texturkoordinaten-Interpolation (nur linear), Modulation der Beleuchtung durch Texturen, Modulatoin der Transparenz (alpha map), |
12. |
Texturierung (Fortsetzung):
Bump Mapping,
Normal Maps,
Textur-Interpolation,
MIP-Maps,
2-stufige Parametrisierung mittels Hüllkörper
Raytracing Grundzüge: forward mapping vs. inverse mapping, rendering equation, Whitted-style Raytracing, ray tree, pin-hole camera model, Sekundärstrahlen, Schnittberechnung Strahl-Polygon, Raytracing auf der GPU |
Tips für Prüfungsvorbereitungen Allgemeine Ankündigungen Konkrete Hinweise zur CG1-Klausur - Achtung: die zugehörige Video-Aufnahme hat keinerlei offiziellen Charakter! Wenn ein Thema aus der Vorlesung hier nicht angesprochen wurde, kann es trotzdem durchaus in der Klausur/Prüfung vorkommen! |
0. |
Beachte: Folien, die mit "FYI" markiert sind, sind nicht klausurrelevant.
Die Shader-Programme aus der Vorlesung als ShaderLabWeb-Projekte. Installation: die Docker App intallieren; nach dem ersten Start von Docker folgende beiden Kommandos in der App ausführen: docker pull biomediaicl/shaderlabweb_webgl2 und docker run -p 80:3000 -d -t biomediaicl/shaderlabweb_webgl2; dann den Container hardcore_tu starten (dieser lässt in einer VM einen lokalen Web-Server laufen); dann im Browser in der Adresszeile localhost eingeben; dann mit dem "Upload"-Button eines der ShaderLabWeb-Projekte als ZIP-Archiv "hochladen".
Der Source Code der GLSL-Shader Beispiele aus der Vorlesung, jeweils als stand-alone C-Programm zum "normalen" Compilieren. Diese basieren auf Qt und können mittels qmake und make compiliert werden. Enthalten im ZIP-Archiv:
- some very simple shaders, each with its own Qt application;
- a set of shaders implementing per-pixel lighting step-by-step;
- Toon and Gooch shaders;
- the "brick" shaders (not discussed in this course.
All demos should compile and run out-of-the-box under Linux and macOS. Some shaders don't come with their own, stand-alone program, you have to load them in a shader IDE (such as ShaderFrog oder SHADERed).
Literatur
Folgende Literatur eignet sich als begleitende Literatur:
- Peter Shirley: Fundamentals of Computer Graphics; 2nd Edition, AK Peters.
- Tomas Akenine-Möller, Eric Haines: Real-Time Rendering; AK Peters.
- Eric Lengyel: Mathematics for 3D Game Programming and Computer Graphics.
Cengage Learning PTR.
Enthält gute Kapitel zu Geometrie, Lighting and Shading, Visibility, Schatten, und Transformationen. - David C. Lay: Linear Algebra and its Applications; Pearson.
- Hearn, Baker, Carithers: Computer Graphics with OpenGL; 4th edition, Pearson
- Foley, van Dam, Feiner, Hughes: Computer Graphics -- Principles and Practice; Addison Wesley.
- Fletcher Dunn and Ian Parberry: 3D math primer for graphics and
game development; A K Peters/CRC Press. Taylor & Francis Group.
Eine sehr einfache, und gleichzeitig unterhaltsame Einführung in 3D-Vektor-Algebra. Als E-Book in der Uni-Bibliothek erhältlich, oder zum Reinschauen im Handapparat der Arbeitsgruppe CGVR. (Das Buch enthält einige wenige Errata.) - Banesh Hoffmann: About Vectors; Dover Publications.
Sehr angenehm zu lesen, fängt ganz unten an und arbeitet sich langsam bis zu Quaternionen und Tensoren hoch. - David F. Rogers: Procedural Elements for Computer Graphics; 2nd Edition, McGraw-Hill.
- J. L. Encarnação, W. Strasser, R. Klein: Graphische Datenverarbeitung 1 und 2. Oldenbourg, 1996
- Alan Watt: 3D Computer Graphics; Addison-Wesley.
- Bender & Brill: Computergrafik; Hanser.
- Dave Shreiner: OpenGL Programming Guide: The Official Guide to Learning OpenGL; Addison-Wesley Educational Publishers, Version 3.0, 3.1, oder 4.1. Achtung: die neueste Ausgabe passt nicht 100%-ig zur Vorlesung, sie ist daher nur für OpenGL-Fortgeschrittene brauchbar.
- Satyan L. Devadoss, Joseph O'Rourke: Discrete and Computational Geometry. Princeton University Press. (Kapitel 1 zum Thema Triangulation)
Falls Sie sich diese Bücher anschaffen möchten sollten Sie vielleicht überlegen, gebrauchte Exemplare zu erwerben -- oft gibt es diese zu einem Bruchteil des Neupreises. Drei gute Internetadressen sind abebooks, Booklooker, und ZVAB.
Hinweise zur Klausur
Die Klausur ist "closed book, open notes", d.h., während der Klausur sind erlaubt:
- 3 DIN-A4 Blätter original und eigenhändig beschriftet (Vorder- und Rückseite)
- Getränk
Außer diesen Dingen darf sich sonst nichts auf dem Tisch befinden, insbesondere nicht erlaubt sind:
- Kein weiteres eigenes Papier
- Keine sonstigen Unterlagen, Bücher, etc.
- Kein Handy, keine Smartwatch, kein Taschenrechner, kein Laptop, etc.
Hier findet Ihr einige Probeklausuren.
(Etliche sind auf Englisch,
die richtige Klausur wird natürlich auf Deutsch sein.)
Der ZIP-File ist Passwort-geschützt -- Ihr bekommt das Passwort von Eurem Tutor oder Professor.
Bitte lasst euch nicht von einer eventuell leicht abweichenden Terminologie irritieren.
Es gilt in der Klausur immer die Terminologie, die ich eingeführt habe.
Lasst Euch bitte auch nicht von der Fülle der Probeklausuren einschüchtern.
Ihr müsst sicherlich nicht alle durchrechnen, um fit zu werden.
Online Literatur und Links zum Programmieren in C/C++ und in OpenGL
- Ein Kompaktkurs zu C mit Beispielen in OpenGL.
- Tutorials/Bücher zu C++ :
- C++ Tutorial (Quelle); fängt von ganz unten an.
- Thinking in C++, Book 1: als PDF und als HTML
- Thinking in C++, Book 2: als PDF und als HTML
- A modest STL tutorial ist eine einfache Einführung in einige grundlegende Konzepte, Container und Algorithmen der Standard Library von C++ (der sogenannten STL). (Quelle)
- cplusplus.com
- online-tutorials.net
- Qt
(ein Cross-Plattform-GUI Toolkit, als "Wrapper" für OpenGL-Fenster)
(für open-source Anwendungen ist die Library kostenlos)
- Downloads im Abschnitt "Qt Libraries"
- Wer sich für Qt interessiert, findet Tutorials, hier einige schöne aber im Rahmen der Vorlesung ist das nicht nötig.
- Einige hübsche Beispiele für OpenGL mit Qt
- On GLSL and shader programming:
- GLSL essentials is a good book on the OpenGL shader language and the different types of shaders. (Accessible only from within the university's network.)
- The Book of Shaders by Patricio Gonzalez Vivo & Jen Lowe. Nice thing about it is that it is an interactive book, i.e., you can modify the examples directly on the web page. So far, I think it only teaches and uses fragment shaders (no vertex shaders).
- A GLSL Quick Reference Guide (source).
- Gute Tutorials zu OpenGL allgemein, die immer auch mit Shadern arbeiten. Geht von "Hello OpenGL" bis zu sehr fortgeschrittenen Techniken (z.B. physically-based rendering).
- Lots of demos and tutorials on shader programming can be found at OGLdev.
- The official GLSL specification (in case you need the precise defintion of a feature).
- The official OpenGL 4.x Reference Pages (you probably won't need them very often for shader programming, but occasionally it is important to understand the OpenGL framework).
- SHADERed is arguably the best shader IDE today. It is cross-platform, and also has a browser-based "lite" version. (for Mac's you have to compile it yourself, then copy some config files from the Windows vesion into the directory of the exec for Mac.)
- Shader Maker is our simple, cross-platform GLSL editor. It works on Windows, Linux, and Mac OS X.
- ShaderFrog: pretty well designed IDE, runs in the browser, uses WebGL1 (so slightly different syntax in the attribute declarations), no geometry shader.
- BKcore's Shdr, a shader editor that runs in the browser. Pretty cool, except it lacks a few features of our ShaderMaker: it does not have a geometry shader, no time uniform, no textures, and I don't see a way to change the values of uniforms interactively. But very nice for simple GLSL programs. (Source code can be found here, in case you want to improve it.)
- A relatively easy introduction to Framebuffer Objects on gamedev.net (by Rob Jones) (source).
- Zu OpenGL:
OpenGL nimmt nicht mehr den breiten Raum in der Vorlesung wie früher ein,
daher sind diese Links eher etwas für Leute, die tiefer einsteigen wollen.
Manche Links sind evtl. auch veraltet.
- Das Buch OpenGL development cookbook
- Eine Reihe von Tutorials für modernes OpenGL, in Form von Code-Beispielen und Erklärungen, die ganz leicht anfangen. (Quelle, Github)
- Recording of the Siggraph course An Introduction to OpenGL Programming, 2013. (Quelle)
- OpenGL Samples
- NeHe Tutorials (viele sehr ausführliche Tutorials und Beispiele
- The OpenGL Reference Manual - The Blue Book
- Offizielle Spezifikationen (z.B. die OpenGL-Specification)
Online Literatur und Resources zu Themen der Vorlesung
- Demo (Java Applet) zur Farbverschmelzung in Monitoren. (Unter macOS muss man http://cgvr.informatik.uni-bremen.de/teaching zur Exception Site List in System Preferences/Java hinzufügen.
- Skript/Lehrbuch zu einer schwedischen Computergraphik-Vorlesung Der Titel klingt ein wenig nach "click-bait", aber es enthält durchaus einige Kapitel, die zu dieser Vorlesung passen. (Quelle)
- Ein sehr ausführliches Skript von Prof. Straßer.
- Ein sehr gutes Lehrbuch über alle Arten von Displays (konventionelle, holographische, Stereo, light-field displays, HMDs, etc.) und deren Grundlagen (Photometrie, Physik des Lichts, Herstellungsprozesse, etc.): Displays: Fundamentals and Applications von Oliver Bimber und Rolf Hainich (Quelle)
- Literatur zur Gammakorrektur:
- Das Bild zur manuellen Bestimmung des Gammas
- Gamma FAQ - Frequently Asked Questions about Gamma ( Quelle)
- Eine sehr ausführliche Darstellung und Motivation der Gammakorrektur: Rehabilitation of Gamma (Quelle)
- Ein nettes Applet zur Gamma Correction (Quelle)
- Zu Geometrie:
- Eine schöne Einführung in die affine Geometrie: Basics of Affine Geometry von Jean Gallier (Quelle), aus dem Buch Geometric Methods and Applications. Darin wird auch begründet, warum die Addition von Punkten nicht sinnvoll ist.
- Norman Wittels: Introductory Vector Calculus (Quelle)
- Konstantin Tretyakov: A Brief Introduction to Matrix Algebra (geht auch speziell auf Translationen, Rotationen, etc., ein) (Quelle)
- Stefan Lang: Einführung in die Matrizenrechnung (Quelle)
- Linear Algebra - An Introduction to Linear Algebra for Pre-Calculus Students by Tamara Carter, Richard Tapia, Anne Papakonstantinou (Quelle)
- Immersive linear algebra ist eine Web-Seite mit schönen interaktiven Beispielen zu Themen der linearen Algebra, die nebenbei auch leicht verständlich erklärt werden.
- Zwei Anwendungen der Shader-Programmierung:
- Zu Visibility Computations:
- Einige Detail-Informationen zum Z-Buffer (von Nathan Reed, NVidia), die u.a. erklären, warum die Auflösung des Z-Buffers sehr nicht-linear bzgl. der Tiefe ist, und warum man die near Clipping-Plane nicht zu nah setzen sollte. (Quelle)
- Zum Hierarchischen Z-Buffer in ATIs Radeon-Karten (und so ähnlich in allen modernen Graphikkarten
- Mark Kilgard: Improving Shadows and Reflections via the Stencil Buffer
- David Blythe et al.: Lighting and Shading Techniques for Interactive Applications , Siggraph Course Notes, 1999 (Kapitel 11.1 behandelt Spiegelungen in OpenGL, 11.4 behandelt Schatten)
- Morgan McGuire, John F. Hughes, and Kevin T. Egan, Mark J. Kilgard and Cass Everitt:
Fast, Practical and Robust Shadows;
2003. (Quelle)
Dieses Paper geht schon deutlich über das hinaus, was in der Vorlesung besprochen wird.
- Mehr zu Homogenen Koordinaten:
- Two parallel lines can intersect
- Projective Geometry and Homogeneous Coordinates ( Quelle)
- Eine sehr pragmatische und teils witzige Einführung: Homogeneous Coordinates with Glorphs and Smynxes (Quelle)
- Transformations and Homogeneous Coordinates (Quelle)
- Einige allgemeine Prinzipien bezüglich Animationen:
- 12 basic principles of animation aus dem Buch The Illusion of Life von Ollie Johnston und Frank Thomas (1981). (Quelle des Films)
- Und die selben Prinzipien noch einmal als (sehr bekannt gewordenes) Siggraph-Paper vom berühmten John Lasseter von Pixar (1987). Es enthält zahlreiche, hilfreiche Erläuterungen zu den Prinzipien. (Quelle)
- On Orthogonal Matrices (Rotationsmatrizen)
- Zu Quaternionen:
- Joe McMahon: A (Mostly) Linear Algebraic Introduction to Quaternions. (Quelle)
- Dam, Koch, Lillholm: Quaternions, Interpolation, Animation. (Quelle)
- Eine sehr schöne Visualisierung der Einheits-Quaternionen und deren Wirkungsweise als Rotation. Arbeitet sich langsam von 1D bis 4D hoch, so dass man am Ende immer noch gut folgen kann. Wenn man diesen Video gesehen hat, dann hat man sicherlich zumindest eine Intuition von Quaternionen; und vielleicht kann sich der/die eine oder andere sogar den 4-dimensionalen Raum vorstellen. (Quelle)
- Ein leicht verständlicher Artikel zum Thema perspektivische Projektionen: Projektive Abbildungen, zeichnerischer Zugang (Quelle)
- Zu Licht und Farben:
- Gary W. Meyer: Tutorial on color science; The Visual Computer, Volume 2, Number 5 / September, 1986. (Quelle)
- Why rods and cones (TD Lamb, Eye (Nature) 2016) ist eine sehr gute Zusammenfassung der Eigenschaften des Auges.
- Eine leicht verständliche Einführung zu Color Management and ICC profiles (Quelle)
- Lichttechnische Grundlagen von der Firma ADB GmbH (Quelle) — falls Sie gerne ins Theater gehen, dann erfahren Sie hier außerdem eine ganze Menge über Theater-Beleuchtung.
- Alex Ryer: Light Measurement Book (Quelle); die erste Hälfte des Buches erklärt viele Konzepte bzgl. Licht und Lichtausbreitung.
- Eine unterhaltsame Reportage über das Farbensehen einiger Tierarten -- mit einer verblüffenden Auralisierung (Quelle).
- Ein unterhaltsames Interview mit Jasper Fforde zu seinem Buch Shades of Grey (nein, nicht das Shades of Grey). IMHO ein must-read für alle, die SciFi mögen und/oder Farben. (Quelle)
- Eine etwas andere Herleitung der wahrgenommene "Gleichheit" von Spektren (Quelle). Dazu gibt es gute, etwas mathematischere Folien zum Thema Farbensehen, Professor Nick Higham, University of Manchester (Quelle).
- Zum menschelichen Auge, Sehvermögen, und Sehapparat:
- Eine Zusammenfassung der Erkenntnisse bzgl. der menschlichen Sehschärfe des menschlichen Auges von Gerald Westheimer: Visual Acuity and Hyperacuity (Quelle, aus dem Handbook of Optics).
- Ein kleiner philosophischer Aufsatz zum Problem der Qualia und der
Erklärungslücke:
What Is It Like to Be A Bat?
von Thomas Nagel (1974).
(Quelle)
Hier ist der vollständige Aufsatz in The Philosophical Review, Vol. 83, No. 4 (Oct. 1974), pp. 435-450. - Webvision: The Organization of the Retina and Visual System, edited by Dr. Helga Kolb, Dr. Ralph Nelson, Dr. Eduardo Fernandez, Dr. Bryan William Jones. Eine hervorragende Sammlung von Buch-Kapiteln zu den verschiedensten Themen des menschlichen Sehapparates, auf verschiedenen Niveau-Stufen.
- Zu Lighting & Shading:
- Brian Karis (Epic Games): Real Shading in Unreal Engine 4, Siggraph Course, 2013 (Quelle)
- Naty Hoffman: Physics and Math of Shading (slides), Siggraph Course, 2015 (Quelle)
- Naty Hoffman: Physics and Math of Shading (notes), Siggraph Course, 2015 (Quelle)
- Brent Burley (Disney): Physically Based Shading at Disney, Siggraph Course, 2015 (Quelle)
- Zur Texturierung:
- David Blythe et al.: Lighting and Shading Techniques for Interactive Applications , Siggraph Course Notes, 1999 (Kapitel 11.1 behandelt Spiegelungen in OpenGL, 11.4 behandelt Schatten, 6.1 behandelt Texturen)
- Der berühmte Artikel " Texture Mapping as a Fundamental Drawing Primitive" von Paul Haeberli and Mark Segal, 1993. (Quelle) Behandelt allerdings nur sehr fortgeschrittene Techniken.
- Ein einfacher Beweis für das Jordan Curve Theorem für die Klasse der Polygone (Quelle)
Tools and Demos
- Einige hübsche Applets / Demos im Browser zu einfachen Konzepten der Geometrie:
-
Das in der Vorlesung gezeigte "Transformation Game" befindet sich in diesem
ZIP-Archive.
Es befindet sich im Verzeichnis freeSoftware/repository/edu/brown/cs/exploratories/applets/transformationGame; Start mit java -jar transformation_game.jar.
Quelle: Brown University - Ein Tool zur Konvertierung von verschiedenen Repräsentationen von 3D-Rotationen ineinander.
- Ein online "Taschenrechner" für Matrizenrechnung: Matrix Calculator
- The demo on metamerism presented in class (developed by Lukas Seiler).
- Ein paar sehr nette Demos zur perspektivisch korrekten (bzw. inkorrekten) Texturierung. Dabei finden sich auch ein paar sehr schöne Erläuterungen zu diesem Thema. (Quelle)
- Ein Online Matrix Calculator.
Lern-Videos, und unterhaltsame Videos
- Video-Tutorial zu LCD-Diplays von 3M.
- Zum Kreuzprodukt von 3Blue1Brown
- Warum die Determinante (Daniel Jung) etwas mit der Volumenänderung durch eine Abbildung zu tun hat. Etwas ausführlicher von Jörn Loviscach.
- Wie man Determinanten mit dem Entwicklungssatz von Laplace berechnet (MathePeter). Außerdem einige Rechenregeln für Determinanten (MathePeter).
- Air on the Dirac Strings: a video showing lots of interpolations of orientations / rotations (it also shows a very nice visualization of a property of the electric spin, but that is not the point why I am putting it up here) by George Francis, Louis Kauffman, Dan Sandin, Chris Hartman, John Hart (source).
-
Video
visualizing rotations using quaternions
(Source).
There is also a nice visualization of quaternions (Source). The latter starts with a nice visualization of rotations in the plane using complex numbers.
There is also the explorable videos on quaternion rotation — really cool stuff! - An Introduction to OpenGL Programming, Siggraph Course 2013. (Quelle)
- Video zum Phong-Modell von Matthias Parchettka (etwas albern, auch oberflächlicher als ein Buch, dafür vielleicht unterhaltsamer) (Quelle 1, Quelle 2).
- Video zu BRDFs auch von Matthias Parchettka (Quelle 1, Quelle 2).
- Über Gouraud-Shading von Andrew Silke (Quelle).
- Remake of Paul Debevec's famous video Fiat Lux, which was one of the first cool videos demonstrating image-based lighting. (Quelle).
Literatur und Infos, die nichts mit Computergraphik zu tun haben
- Ein Artikel über moderne Tools zur Beeinflussung von Wählern über die sogenannten sozialen Medien: Wahlmanipulation mittels Psychometrik und Social Media (Quelle: Das Magazin). Die Gefahr geht noch weit darüber hinaus, da man diese Technologien natürlich genauso gut benutzen kann, um die Stimmung gegenüber Firmen zu beeinflussen (z.B. bzgl. Genmanipulation, oder umweltschädliche Praktiken, etc.).
- Eines der letzten Interviews mit Joseph Weizenbaum, einem berühmten Pionier der KI und späterer Kritiker allzu großer Technikgläubigkeit. (Hat nichts mit Computer-Graphik direkt zu tun, gehört aber trotzdem zur Allgemeinbildung.)
- Interview mit Vint Cerf, einem der Väter des Internet (TCP/IP, nicht HTML). Er spricht über die Entwicklung von den Anfängen, und über die Zukunft.
Last modified: Wed Feb 08 19:29:53 CET 2023