Computergrafik - Computer Graphics and HCI Group
Transcrição
Computergrafik - Computer Graphics and HCI Group
Computergrafik SS 2014 Wer sind wir? Vorlesung Prof. Dr. Hans Hagen Raum: 36-226 Email: [email protected] apl. Prof. Dr. Achim Ebert Raum: 36-236 Email: [email protected] Übungsleitung Lars Hüttenberger Raum: 36-231 Email: [email protected] © Achim Ebert CG.0.1 Wer sind wir? (cont.) Übungen Stephanie Schweitzer Raum: 36-218 Email: [email protected] Max Zeyen Raum: 36-220 Email: [email protected] © Achim Ebert CG.0.2 Vorlesung: Ablauf Vorlesungstermine: Mittwochs und Donnerstags, teilw. auch Freitags Uhrzeit: 10:00 – 11:30 Uhr Raum: 36-265 Erste Vorlesung: 23. April Skript: Online als PDFs unter: http://gfx.uni-kl.de/~cg Alternativ auf Anfrage gedruckt erhältlich (evtl. kapitelweise) Prüfung: Mündlich Termine nach Vereinbarung © Achim Ebert CG.0.3 Übung: Konzept Wöchentliche Programmieraufgaben Bearbeitung in Zweiergruppen Erfolgreiche Teilnahme ist Voraussetzung für den Erhalt von Scheinen und für die Prüfungsteilnahme! Schrittweise Erweiterung Aufbauend auf Musterlösung oder eigener Lösung Implementieren von Algorithmen aus der Vorlesung Zum Beispiel: © Achim Ebert Bresenham-Algorithmus Transformationen Raycasting Beleuchtung und Schattenwurf Texturierung CG.0.4 Übung: Technisches Implementierung Programmiersprache: C++ Benutzeroberfläche: Qt Grafik-Framework: OpenGL Entwicklungsumgebung: QtCreator Betriebssystem: vorzugsweise SUSE Linux Im Praktikumsraum 36-223 Privatrechner: kein Support bei Problemen Accounts Name: „cgvorlXX“ mit XX die Gruppennummer Passwort: Aht5uCoh © Achim Ebert CG.0.5 Übung: Formales Ausgabe der Übungsblätter Mittwochs nach der Vorlesung auf der Website Bereitstellung der Musterlösung Dienstags ca. ab 13:00 auf der Website Abnahme: Dienstags 9:00-11:00 in 36-223 Anwesenheit aller Gruppenmitglieder notwendig! Vorführung des Programms und des Quellcodes Teilnehmerlisten für die Übungen: Name, Studiengang, Email-Adresse Hängen später auch neben 36-223 aus Tragen Sie sich bis spätestens 30. April, 9:00 ein! © Achim Ebert CG.0.6 Übung: Formales Blatt 1 Ausgabe: Mittwoch, 23. April Abgabe: Dienstag, 6. Mai Zulassungsvoraussetzungen zur Prüfung mind. 50% der Punkte aller Blätter erreicht und mind. 30% der Punkte jedes Blatts erreicht © Achim Ebert CG.0.7 Übung: Formales Bei Fragen: © Achim Ebert Montags, Donnerstags, & Freitags 14:00 – 16:00 Uhr Donnerstags in 36-223 (Max) Freitags in 36-218 (Stephanie) Montags in 36-231 (Lars) CG.0.8 Computer Graphik Simulation & Animation Geometrische Modellierung Manipulation (3D) Computergrafische Darstellung Geometrische Repräsentation Visualisierung Interaktion Grafik-Hardware Verwandte Disziplinen Bildverarbeitung „Verbesserung“ gegebener Bilder Erkennen von Mustern (pattern) in einem digitalen Bild (bitmap) Anwendung: Automatische Qualitätskontrolle, Sicherheitstechnik Computer Vision Verstehen von Bildern mit Hilfe des Rechners Wahrnehmungs- und Interpretationsprozess des Gehirns wird in Software ab- und nachgebildet Teilgebiet der KI Anwendung: Retrieval in Mediendatenbanken © Achim Ebert CG.0.10 Verwandte Disziplinen Mensch-Maschine-Interaktion (MMI / HCI) Aufgaben- und benutzerorientierte Software Interaktionskonzepte Visualisierung Nutzung der Methoden der Computer Graphik Wahrnehmungs- und aufgabenorientierte Darstellung von abstrakten, gemessenen oder simulierten Daten Computer Aided Geometric Design Repräsentation (Datenstrukturen) und Verarbeitung (Algorithmen) beliebig geformter Objekte beliebiger Topologie (Freiformgeometrie) © Achim Ebert CG.0.11 Literatur ... Allgemeine Literatur zur Veranstaltung: Bender M., Brill, M.: Computergrafik, 2. Auflage, Hanser Verlag, 2005. http://www.vislab.de Foley J., van Dam A., Feiner S., Hughes J.: Computer Graphics – Principles and Practice, Addison-Wesley, second edition, 1997. Watt A.: 3D Computer Graphics, Addison-Wesley, 3rd edition, 2000. gibt es auch als deutsche Übersetzung im gleichen Verlag Watt A., Watt M.: Advanced Animation and Rendering Techniques, Addison-Wesley, 1992. Hoschek, D. Lasser: Grundlagen der geometrischen Datenverarbeitung, Teubner, 1992. © Achim Ebert CG.0.12 Literatur ... Web-Ressourcen: ACM http://www.siggraph.org/ IEEE Technical Committee on Visualization and Graphics http://www.cc.gatech.edu/gvu/tccg/ EG European Association for Computer Graphics http://www.eg.org/ Gesellschaft für Informatik, Fachausschuss 4.1 Graphische Datenverarbeitung http://www.gi-ev.de © Achim Ebert CG.0.13 Literatur ... Lesenswert: Blinn J.: Jim Blinn‘s Corner - A trip down the graphics pipeline, Morgan Kaufmann, 1996 Dodsworth: Digital Illusion - Entertaining the Future with High Technology, Addison-Wesley, 1997. Tufte: Visual Explanations - Images and Quantities, Evidence and Narrative, Graphics Press, 1997. Blinn J.: Jim Blinn's Corner - Dirty Pixels, Morgan Kaufmann, 1998. © Achim Ebert CG.0.14 Inhalte der Vorlesung §0 Historie, Überblick, Beispiele §1 Begriffe und Grundlagen §2 Objekttransformationen §3 Objektrepräsentation und -Modellierung §4 Sichttransformationen §5 Kurven und Flächen §6 Rendering, Visibilität, Radiosity §7 Mapping-Techniken © Achim Ebert CG.0.15 §0 Historie, Überblick, Beispiele © Achim Ebert CG.0.16 0.1 Historie Grundlagen-Ära der Computergrafik Start Anfang siebziger Jahre, bis Mitte achtziger © Achim Ebert Jahre Basierend auf technologischer Entwicklung der Rastergrafik-Hardware Erster Siegeszug der Computergrafik in der wissenschaftlichen und der high-end Anwendungsdomäne Entwicklung von Algorithmen und Datenstrukturen für fotorealistische Bildsynthese und Modellierung von Objekten Grundlagen heute benutzter Verfahren (z. B. RayTracing) und Anwendungen (z. B. CAD-Systeme) aus dieser Zeit CG.0.17 0.1 Historie Grundlagen-Ära der Computergrafik (cont.) Nach Basisfundierung ab den späten achtziger Jahren Entwicklung weiterführender Techniken und Anwendungen Notwendigkeit der Verwendung leistungsfähiger aber sehr teuerer Grafikrechner © Achim Ebert CG.0.18 0.1 Historie Anwendungs- und Anwender-Ära der Computergrafik Start Ende der neunziger Jahre Basierend auf technologischer (und preislicher) Entwicklung der PC-Hardware und Hochleistungs3D-Grafikhardware Zweiter Siegeszug der Computergrafik in der Anwendungs- und Anwenderdomäne Algorithmen und Verfahren aus der Grundlagen-Ära erfahren effiziente Hardware-Unterstützung bzw. Umsetzung © Achim Ebert CG.0.19 0.1 Historie Anwendungs- und Anwender-Ära der Computergrafik (cont.) Low-level Software-Zugang: Moderne Software-Schichten kapseln in Form von APIs, wie z. B. OpenGL, Direct3D oder Java3D, zunehmend höhere Funktionalitäten => Zugang eines breiten Kreises von Anwendungsprogrammierern zu Computergrafikroutinen High-level Software-Zugang: Moderne Werkzeuge, wie z. B. 3D Studio Max oder Maya, ermöglichen den komfortablen Umgang mit Computergrafiktechniken für eine breite Anwenderschicht © Achim Ebert CG.0.20 0.1 Historie Anwendungs- und Anwender-Ära der Computergrafik (cont.) Im Mittelpunkt der wissenschaftlichen Entwicklung stehen die Anwendungen der Computergrafiktechniken, insbesondere in speziellen Teilbereichen, wie z. B. Visualization, Scientific Visualization, Information © Achim Ebert Visualization Computer-Animation Virtual Reality, Virtual Environments, Augmented Reality, Tele-Immersion CG.0.21 0.2 High-level Anwender-Werkzeuge Maya Professionelles Rendering, Modellierung, Animation Entwickler: Alias|Wavefront (Silicon Graphics Lt.) Aktueller Hersteller: Autodesk Einsatz in Filmen: Lord of the Rings Trilogy Shrek South Park Einsatz in Games Left for Dead 2 Portal 2 Plattform: Windows, MacOS, Linux Preis: sehr hoch Autodesk Maya 2013 (Einzelplatz): 4.700€; kostenlose Lizenz für Studierende © Achim Ebert CG.0.22 0.2 High-level Anwender-Werkzeuge Maya (cont.) Bildquelle: http://down.cd © Achim Ebert CG.0.23 0.2 High-level Anwender-Werkzeuge Softimage Modellierung, Animation, Rendering und Produktion im professionellen Bereich Benutzt MentalRay als Ray-Tracer Hersteller: Autodesk Einsatz in Filmen: Thor District 9 Einsatz in Games: Resident Evil 5 Street Fighter IV Plattform: Windows Preis: sehr hoch Autodesk Softimage 2013 (Einzelplatz): 4.900€ © Achim Ebert CG.0.24 0.2 High-level Anwender-Werkzeuge Softimage (cont.) Bildquelle: http://develop3d.com © Achim Ebert CG.0.25 0.2 High-level Anwender-Werkzeuge 3ds Max (3D Studio Max) Modellierung, Animation, Rendering und Produktion im professionellen Bereich Hersteller: Autodesk (www.autodesk.com) Einsatz in Filmen: Avatar Transformers X-Men Einsatz in Games: Guild Wars Tom Clancy‘s Splinter Cell: Double Agent Plattform: Windows Preis: sehr hoch Autodesk 3ds Max 2013 (Einzelplatzlizenz): 5.300€; kostenlose Lizenz für Studierende © Achim Ebert CG.0.26 0.2 High-level Anwender-Werkzeuge 3ds Max (cont.) Bildquelle: http://www.btlnews.com © Achim Ebert CG.0.27 0.2 High-level Anwender-Werkzeuge Rhinoceros 3D, Rhino CAD-Anwendung, Modellierung mit Freiformkurven und -flächen Hersteller: Robert McNeel & Associates Homepage: www.rhino3d.com Einsatz bei: Airbus Industries, US Air Force BMW AG, Daimler Chrysler, Ford, Honda, Hyundai, Toyota, Yamaha LEGO, Microsoft, Miele, Nike, Nintendo, Nokia, Walt Disney US Army Research Plattform: Windows Preis: mittel Rhino 4.0 (Einzelplatz): 1000€, Studierende: 200€ © Achim Ebert CG.0.28 0.2 High-level Anwender-Werkzeuge Rhinoceros 3D, Rhino (cont.) © Achim Ebert CG.0.29 0.2 High-level Anwender-Werkzeuge Beispiele: Bild oben: http://www.archisystems.com.cy Bild links: http://tutoplus.net © Achim Ebert CG.0.30 0.2 High-level Anwender-Werkzeuge Beispiele (cont.): Bild oben: http://static.creativecrash.com Bild rechts: http://www.cadacademysrl.it © Achim Ebert CG.0.31 0.3 Low-level Anwender-Werkzeuge POVRAY (Persistence of Vision Ray-Tracer) Reiner Renderer ohne 3d-Modellierer Raytracer mit Radiosity-Erweiterung Homepage: www.povray.org Plattform: Windows, MacOS, Linux Preis: freeware, source code! BMRT (Blue Moon Rendering Tools), RenderMan, Entropy Kommerziell eingesetzter Renderer Einsatz bei: ILM, Pixar (A Bug's Life, The Cell, Hollow Man) Preis: BMRT = zero for non-profit use; aber: das war einmal… (Entwickler entwickelten später Nvidia Gelato) © Achim Ebert CG.0.32 0.3 Low-level Anwender-Werkzeuge VTK – The Visualization Toolkit Objektorientierte Visualisierungsbibliothek (C++ Klassen, TCL Skript-Sprache, Java bindings) mit Standard- und fortgeschrittenen Algorithmen (z. B. contouring, surface smoothing, triangulation) für alle Arten der 3D-Datenvisualisierung. Hersteller: Kitware Inc. (www.kitware.com) Homepage: www.vtk.org Preis: zero for non-profit use (Open Source) © Achim Ebert CG.0.33 0.4 Tools für Anwendungsprogrammierer Begriffe: Immediate Mode: Direkter Modus, alle Aktionen werden direkt ausgeführt Low-level, d.h. keine bis schwache Abstraktion Fast kein Raum mehr für Optimierung Primitive: Punkte, Linien, Dreiecke, ... Retained Mode: Indirekter Modus, zuerst wird ein „Szenengraph“ konstruiert Elemente die sich ändern werden spezifiziert Abstrakterer Level Höherwertige Primitive: Kugeln, Quader, Prismen, ... Bemerkung: Vorsicht, Bezeichnungen werden oft unterschiedlich verwendet! © Achim Ebert CG.0.34 0.4 Tools für Anwendungsprogrammierer Es existieren unübersehbar viele Grafikschnitt- stellen (3D-APIs), -sprachen und -standards auf unterschiedlichen Abstraktionsniveaus für viele verschiedene Einsatzgebiete. Folgende gelten als etabliert: OpenGL (basiert auf IRIS GL) Open Inventor VRML (3D-Beschreibungssprache, kein API!) Open Performer (ehemals IRIS Performer) OpenGL Optimizer OpenGL Volumizer Java3D DirectX, Direct3D © Achim Ebert CG.0.35 0.4 Tools für Anwendungsprogrammierer Überblick: Application Java3D Java3D Direct3D, DirectX Inventor Performer Optimizer Volumizer OpenGL Quickdraw3D (Mac) Operating System © Achim Ebert CG.0.36 0.4 Tools für Anwendungsprogrammierer OpenGL Open Graphics Library Entwickelt 1992, aktuelle Version 4.2 (August 2011) Quasi-Industriestandard, gut dokumentiert, stabil, skalierbar, ständige Weiterentwicklung Prozedurales low-level API für 2D und 3D Grafik Oberflächen- und Betriebssystemunabhängig Mehr als 150 Funktionen für © Achim Ebert Rendering Texturen Modellierung Transformationen ... CG.0.37 0.4 Tools für Anwendungsprogrammierer OpenGL (cont.) Nutzbar mit C, C++, C#, Fortran, Ada, Java Unter Windows, X-Windows und MacOS Einsatzbereiche: 3D Animation CAD Virtuelle Welten Simulationen ... Referenzimplementierung von SGI unter oss.sgi.com © Achim Ebert CG.0.38 0.4 Tools für Anwendungsprogrammierer Open Inventor Objektorientiertes Toolkit für interaktive 3D © Achim Ebert Grafikanwendungen Entwickelt von SGI 1992 Basiert auf OpenGL Definiert Modelle mittels eines Szenengraphen mit Primitiven wie Würfel, Polygone, NURBS, ... Fensterverwaltung unter X-Windows Definiert ein Dateiformat für den Datenaustausch Event-basierte Modellierung für 3D Interaktion, Mechanismen für animierte Objekte (engines) und Picking Plattformunabhängig, Unterstützung von Crossplattformentwicklung CG.0.39 0.4 Tools für Anwendungsprogrammierer Open Inventor (cont.) Beispiel: Szenengraph © Achim Ebert CG.0.40 0.4 Tools für Anwendungsprogrammierer Open Performer (cont.) API, die auf OpenGL aufsetzt und weitere © Achim Ebert Funktionalitäten zur Verfügung stellt; Optimiert für den Einsatz in Virtual Reality (VR) Umgebungen, echtzeitfähig, multithreaded, interaktiv Einsatzbereiche: Visuelle Simulation, Virtual Reality, CAD-Systeme, Spielentwicklung Mechanismen für transparentes Multiprozessing und effiziente Nutzung von mehreren/parallelen Prozessoren, Videokanälen und Grafikpipelines ohne Codeänderungen. Eigene Datenstruktur für schnelles Laden Behandlung von großen Texturen mit bis zu 8*106 x 8*106 Texels CG.0.41 0.4 Tools für Anwendungsprogrammierer OpenGL Optimizer Visualisierungsbibliothek für sehr große Modelle Vorwiegend für den Konstruktionsbereich gedacht (Digital Prototyping) Bietet volle Kontrolle über: Topologie (z. B. boundary representation) Netzerzeugung (tesselation) Netzvereinfachung (mesh simplification) OpenGL Volumizer High-level API für Volumendarstellung Darstellung und Manipulation von großen Volumendatensätzen für Medizin-, Energie- und Wissenschaftsmarkt Datenmengen im Rahmen von mehreren 100 GB © Achim Ebert CG.0.42 0.4 Tools für Anwendungsprogrammierer Java3D Erfolg von Java führte zu Nachfrage nach 3D-API Entstanden aus Kooperation von Sun mit Intel, SGI und Apple (damals noch ohne MS entwickelt) Zwischenzeitlich eingestellt, nun Open Source Plattformen (heute): Linux, Windows, MacOS Versionen für OpenGL und DirectX (nur Windows) Kapselt OpenGL- bzw. DirectX-Funktionalität in leichter verständlicherer, objektorientierter Struktur auf Basis eines Szenengraphen Ursprüngliche Ziele Spieleentwicklung Unterstützung von high-end Rendering-Umgebungen Unterstützung von 3D-Eingabegeräte © Achim Ebert CG.0.43 0.4 Tools für Anwendungsprogrammierer Direct3D Teil von DirectX, das alle Multimedia-Belange abdecken soll Beschränkt auf Microsoft-Systeme (Windows, XBox …) 3D-API für Spiele, Multimedia-Anwendungen und interaktive 3D-Grafik Features: © Achim Ebert Umschaltbare Tiefenbuffer Flat- und Gouraudshading Mehrere Lichtquellen und –typen Material- und Texturunterstützung Transformation und Clipping Robuste Emulationstreiber überbrücken fehlende Hardwarefunktionalität CG.0.44 0.4 Tools für Anwendungsprogrammierer Direct3D (cont.) Architektur: Component Hardware Emulation Layer (software drivers that act like hardware) Hardware Abstraction Layer (software drivers that communicate between SW and HW) D I Retained Mode (RM) R E C T Immediate Mode 3 (IM) D (HEL) DirectX Media Layer DirectShow DirectAnimation DirectX Foundation Layer DirectDraw Direct3D Direct3DX DirectInput DirectSound DirectSound3D DirectPlay DirectMusic HAL Graphics hardware © Achim Ebert CG.0.45 0.5 Anwendungsbeispiele Projekt Virtual Try-On Interaktiver Bekleidungskatalog mit Kunde als 3D-Modell Konfektionsware und Maßkonfektion Visuelle Passformkontrolle © Achim Ebert CG.0.46 0.5 Anwendungsbeispiele Virtual Try-On – Existierende Ansätze Otto Versand © Achim Ebert CG.0.47 0.5 Anwendungsbeispiele Virtual Try-On – VITUS 3D Body-Scanner © Achim Ebert CG.0.48 0.5 Anwendungsbeispiele Virtual Try-On – VITUS 3D Body-Scanner Technische Daten 3600-Scanner Scanvolumen: Laserklasse: Scandauer: Auflösung: Optional: 1.2m x 0.8m x 2.1m 1 (augensicher) 10 - 20 Sekunden 1 - 2 mm hochauflösende Farbtexturen Automatische Bestimmung individueller Körpermaße Virtueller Kunde = Scan-Objekt + Maße + Featurepunkte © Achim Ebert CG.0.49 0.5 Anwendungsbeispiele Virtual Try-On – Avatar © Achim Ebert Rohscan Avatar 450.000 3D-Punkte 12.000 Polygone Texturiert CG.0.50 0.5 Anwendungsbeispiele Virtual Try-On – Intelligente Morphingtechnologie Scan des Kleidungsstücks Segmentierung des Kleidungsstückes Bestimmung einer geeigneten Parametrisierung für jedes Segment zylindrisch sphärisch Deformation Änderung der lokalen EckpunktKoordinaten bzgl. zugehöriger Parametrisierung zylindrisch Gesamt-Morph zylindrisch Additive lokale Deformationen zylindrisch © Achim Ebert CG.0.51 0.5 Anwendungsbeispiele Virtual Try-On – Virtuelle Bekleidungsanprobe Positionierung Vorpositionierung: Featurepunkte aus Scanprozess „Haltungskorrektur” zur genauen Positionierung © Achim Ebert CG.0.52 0.5 Anwendungsbeispiele Virtual Try-On – Ergebnisse © Achim Ebert CG.0.53