Zu meiner Person Was erwartet Sie? Vorlesungen Übungen Thomas Jung Welche Techniken lernen Sie kennen? Grafik-API Programmiersprache Organisatorisches Belegkriterien Informatik-Diplom, TU Berlin, 1989 Promotion, TU Berlin, 1995 Neben Studium: Programmierer bei Nixdorf, dann SHK bei GMD-FIRST Nach dem Studium: Wissenschaftler bei GMD-FIRST Schwerpunkt 3D-Computergrafik, Virtuelle Realität 1997: Auslandsaufenthalt im Fukuda-Lab in Nagoya, Japan seit 1997: Lehrbeauftragter der htw 1998-2000: Leiter des Forschungsbereichs ViSTA bei GMD-FIRST seit 2000: Professor für Multimedia an der htw seit 2004: Competence Center Mensch-Maschine-Kommunikation 1) Einführungsveranstaltung 2) Transformationen 3) Farbe 4) Bilder 5) Verdeckung 6) Beleuchtung 7) Texturierung 8) Antialiasing 9) OpenGL, Unity, etc 10) Augmented Reality 11) Raytracing 12) Radiosity 13) Kurven und Flächen Repräsentation von 3D-Objekten Koordinatensysteme Transformationen Homogene Koordinaten Projektionen 1
Farbwahrnehmung Farbmodelle Lichtreflexion Monitore Vektorgrafik Rastergrafik Grafikhardware Liniengenerierung Bildformate Viewfrustum Culling Backfacing Kappen Z-Speicher Echtzeitdarstellung von Oberflächen Beleuchtung Rasterisierung Schattierung OpenGL Abbildungen Texturen Bumpmaps Lightmaps 3D - Texturen Theoretisches Modell Mipmapping Full Scene Antialiasing Hardwareunterstützung 2
OpenGL vs. DirectX Hardware Shader Szenegraphen Unity Virtuelle Realität Grundlagen CAVE@HTW Augmented Reality Marker-based RGBD-SLAM Hololens, Tango, etc. Bildqualität Beleuchtungsmodell Algorithmus Beschleunigungstechniken Erweiterungen Vergleich zu Raytracing Herleitung Algorithmus Progressive Refinement Repräsentationen Winged-Edge-Datenstruktur Splines NURBS Praktische Ergänzung zur Vorlesung In zwei Blöcken Pflichtteil: Lösung vorgegebener Aufgaben in kleinen Schritte unter Anleitung Kürteil: Bearbeitung eines abgesprochenen individuellen Belegthemas in Gruppen Heimarbeit ist möglich 3
Wiederholen des VL-Stoff Grafikprogrammierung Erlernen eines Grafik-APIs Entwicklung einer eigenen interaktiven Applikation (z. B. kleines 3D-Spiel) Ein bisschen 3D-Modellierung Grafikprogrammierung mit JAVA wenig sinnvoll Programmierung 1 bis 3 durchgängig in JAVA These: Wenn man eine OO-Sprache richtig beherrscht, ist der Umstieg auf eine andere einfach Nur Mut! Ich bin kein C++-Dozent, helfe aber bei der praktischen Anwendung. Fortgeschrittene C++-Konzepte nicht Gegenstand der Lehrveranstaltung Basiert auf Suchanfragen mit Programming xxx Sep 2012 (Quelle: http://www.tiobe.com ) (Quelle: http://radar.oreilly.com ) Verzeichnet 348 Game Engines (Stand 20.09.2012) davon 278 in C/C++ implementiert Implementierungssprachen (Mehrfachnennung möglich) C/C++ Basic Delphi Python JAVA C# Pascal Andere Direct-3D Zurzeit nur auf X-Box, MS Windows und MS Phone Grafiktreiber unter Windows oft etwas aktueller Direct-X bietet umfassende Funktionalität OpenGL Offener plattformunabhängiger Standard Plattformen: MacOS-X, Linux/Unix, MS Windows, Playstation, Webbrowser, ios, Android Wird bevorzugt in der Lehre eingesetzt Vorlesung zu OpenGL 4
Voraussetzungen: Grundlagen-Veranstaltungen zu den Schwerpunkten Anwendungswissen Programmierung 1 bis 3: Programmierung, OO-Design Mathematik 1 bis 2: Lineare Algebra, etc. Weiterführende Veranstaltungen: 3D-Techniken: Entwicklung von Multimediasystemen (MM) 3D-Visualisierung: Visualisierung medizinischer Daten (GI) Spieleengines, 3D-Modellierung: Computergrafik 2 (Wahlpflicht) 5.Semesterprojekt: CAVE Bewertung 0% Pflichtteil 50% Kürteil 50% Klausur Klausurteilnahme nur bei der Hälfte der möglichen Punkte aus den beiden anderen Teilen (insgesamt) Praktische Aufgabe zur Beleuchtung Welche Farbe sieht der Betrachter In OpenGL Beim Raytraicing Mit Radiosity Musterlösung bereits im Netz! Sie können sich das ganze Semester auf diese Aufgabe vorbereiten! Kein Auswendig Lernen sondern Verstehen! Pflichtteil In der Regel Einzelarbeit, wenn Mängel geringfügiger Abzug beim Kürteil 8 Blöcke a 90 Minuten = 12 Zeitstunden Kürteil 50% der Note, Gruppenarbeit 12 Zeitstunden an der htw, 12 Stunden zu Hause pro Person Beispiel 2er-Gruppe: 48 Zeitstunden insgesamt Extrembeispiel 4er-Gruppe, Abgabe für zwei Lehrveranstaltungen: 200 Zeitstunden In früherem Semester wurde der vorgesehene Aufwand um ein vielfaches überschritten! Beim Kürteil maximal 1200 Zeilen C++- Quellcode pro Person Sonst Punktabzug Kein Zeilenschinden Vergleichbare Regelung für JAVA Zum Vergleich Pflichtteil hat ca. 350 Zeilen Reguläre Abgabe mit Vorführung zur Semestermitte (genaue Termine im Web) Verspätete Abgabe (von maximal 50): bis zur Klausur -2 Punkte bis zum 2. Prüfungstermin -6 Punkte Abzug aus Pflichtteil Fehlende Eigenschaft Verspätete Abgabe -1 Punkt -2 Punkte 5
Sehr gut: 3D-Computergrafik, Watt, 2002 Aktuell: Hughes, vandam et al: Computer Graphics: Principles and Practice (3rd Edition, 2013) Zur Not auch älteres Standardwerk dieser Autoren aus den Achtzigern OpenGL OpenGL-Redbook (Mindestens Version 3!) Andere Bücher zum Thema OpenGL tun s vermutlich auch Achtung: Nicht Version 1 (Fixed-Function-Pipeline) Grundlagen in der ausgewiesenen Literatur nachzulesen (kein Skript) WWW www.opengl.org www.f4.htw-berlin.de/~tj/cg Vorlesungsfolien Aktuellen Ankündigungen Terminverschiebungen Noten Probleme in der Übung gerne per E-mail Ich beantworte jede E-mail so schnell wie möglich! Wenn Sie Anregungen oder Kritik haben, lassen Sie mich das wissen! Frust hilft niemandem Ich möchte meine LV jedes Semester verbessern Falls Sie einen Praktikumsplatz oder Arbeitsplatz im Bereich 3D suchen, sprechen Sie mich an Ich kenne mehrere Unternehmen, die geeignete Studierende suchen 6