Institut für Informatik | Sitemap | LMU-Portal
English
  • Startseite
  • Studieninteressierte
  • Studierende
  • Lehrveranstaltungen
    • Archiv
    • SS 2007
      • 3DCG
      • 3DP
      • HS
      • MMI2
      • MMP
      • MT
      • OS
      • PEM
      • PMG
      • SG
  • Forschung
  • Personen
  • Kontakt
  • Besucher
  • Jobs
  • FAQ
  • Intern
3DP in anderen Semestern:
SS08 SS07 SS06
Startseite > Lehrveranstaltungen > SS 2007 > 3DP

Praktikum 3D-Programmierung

Prof. Andreas Butz, Otmar Hilliges
Umfang: 2 SWS

  • Aktuelles
  • Termine und Ort
  • Ablauf
  • Inhalt
  • Aufgaben
  • Teams
  • Vorraussetzungen
  • Literatur

Aktuelles

  • Achtung die Abschlußbesprechung findet nicht im Seminarraum 107 statt, sondern im Besprechungsraum im 5.Stock (Raum A506)
  • Informationen zu den einzelnen Projekten sollen auf die Wikipage
  • Zum bearbeiten der Wikipage ist eine Registrierung nötig
  • Es gibt eine Mailing Liste zur Diskussion von Fragen rund um das Praktikum.

Termine und Ort

  • Wöchentliche Besprechung: Mittwoch, 10:15 - 11:45
  • Ort: Amalienstr. 17, Raum 107
  • Erster Termin: 25. April 2007

Ablauf

  • Dienstag 12:00 - Neues Aufgabenblatt steht zum Download bereit.
  • Mittwoch 10:15 - 11:45 - Wöchentliche Treffen zur Präsentation und Besprechung.
  • Dienstag - Montag - selbständige Bearbeitung unter der Woche
  • Montag 12:00 - Abgabe der Aufgaben

Inhalt

  • Thema: 3D Programmierung (nicht Modellierung) in C++ und OpenGL
  • Programmiersprache: C++/OpenGL

Die Programmiersprache C++ ist auf dem Gebiet der interaktiven Computergrafik die am häufigsten verwendete Alternative. In diesem Programmierpraktikum wird grundlegendes Wissen zur Programmierung mit C++ vermittelt. Darüber hinaus werden wir uns mit der Programmierung von 3D Computergrafiken beschäftigen. Zur effizienten Darstellung von 3D Inhalten wird OpenGL verwendet. Für die Bearbeitung und Implementierungen werden Teams zu je zwei bis drei Personen gebildet. Das Programmierpraktikum ist in zwei Abschnitte unterteilt. Im ersten Abschnitt werden grundlegende Konzepte behandelt. Themen sind u.a.

  • C++ Compiler, Linker/Einbinden von Bibliotheken, Debuggen
  • Präprozessor, Objektorientierung, Pointer, Felder und Strukturen, Standard Template Library
  • Grundlagen der 3D Computergrafik
  • Grundlagen von OpenGL, GUIs mit GLUT, Texturierung, Beleuchtung, Shaderprogrammierung

Wir beginnen zunächst mit den Einstellungen die für OpenGL (bzw. eine 3-dimensionale Szene) berücksichtigt werden müssen. Dies beinhaltet vor allem die Kamera-Parameter, die hier erläutert werden. Danach starten wir mit einfachen 2D Objekten und ihren Transformationen und wenden dies dann nach gleichem Schema auf 3D Objekte an. Hierzu gehört unter anderem auch das Verständnis der Mathematik, d.h. der Transformationsmatrizen. Darauf aufbauend werden die Methoden der Färbung, Texturierung und des Blendings von Objekten angesprochen. Im Anschluss daran werden Lichtquellen, Schatten, Spiegelungen und Nebel behandelt. Den Abschluss der Theorie bilden Kollisionserkennung von Objekten und Partikelsysteme.

Im zweiten Abschnitt des Praktikums wird sukzessive eine komplexere Aufgabenstellung (z.B. kleines interaktives Spiel) erarbeitet. Die hierfür benötigten Programmiertechniken bauen auf den in Abschnitt eins des Systementwicklungsprojekts erarbeitet Techniken auf.

Aufgaben

Termin -
Abgabe
Beschreibung Folien Aufgabe Tipps
25.04.2007 Einführung: Header- u. Source files, Präprozessor, Compiler, Linker
Standard I/O
PDF, 222KB Blatt 1
Merkblatt zu SVN
C++ reference: cstdio
02.05.2007 Klassen, Objekte, Vererbung PDF, 201KB Blatt 2
09.05.2007 Fenster mit GLUT, OpenGL Basics PDF, 303KB Blatt 3
GLUT Man Pages
OpenGL - GLUT for Win32
16.05.2007 Mathematische Grundlagen der 3D Computergraphik
Beleuchtung in OpenGL
PDF, 265KB Blatt 4
OpenGL Referenz (RedBook) Online
NeHe OpenGL Tutorials
23.05.2007 Szenegraphen, Texturen und Displaylisten PDF, 266KB Texture.h
Texturen
30.05.2007 Pixel basierte Effekte:
Bump-Mapping, Height-Mapping
PDF, 409KB Blatt 5
PPT Vorlage
TUM Imagelib
Per-Pixel Operations Tutorial
Simple Bump-Mapping
Height-Maps für Landschaften
20.06.2007 Kollisionserkennung PDF, 166KB NeHe Tutorial 30
Bsp. mit Code
27.06.2007 Partikelsysteme, Multipass Rendering PDF, 313KB NeHe particle system Tutorial
Advanced techniques (ps)
FBO 101
04.07.2007 OpenGL Shader Language (GLSL) PDF, 203KB Lighthouse 3D Shading Tutorial
Tutorial GLSL - DGL Wiki
11.07.2007 Stencil Operationen PDF, 254KB 3D Concept Stencil Buffer

Teams

Vorraussetzungen

  • Hohe Motivation. Kann evtl. alle nachfolgenden Punkte Ersetzen.
  • Programmiererfahrung in mindestens einer Objekt-Orientierten Programmiersprache (z.B. Java)
  • Grundkenntnisse in linearer Algebra z.B. Transitionen und Translationen(aus dem Grundstudium)
  • Grundkenntnisse im Software Engineering und Projektmanagement/Selbstorganisation

Für Studierende der Medieninformatik im Hauptstudium
Erwartete Vorkenntnisse: Vordiplom in Medieninformatik

Literatur

  • Jesse Liberty, C++ in 21 Tagen. Schritt für Schritt zum Programmierprofi, Eine Einführung in C++ aufgegliedert in ein 21-tägiges Programm. Nach diesen 21 Tagen sollte man die grundsätzlichen Konzepte und Paradigmen von C++ verstanden haben.
  • Bjarne Stroustrup, The C++ Programming Language, Das C++-Buch, der Autor ist der Begründer dieser Programmiersprache.
  • Dave Shreiner, Mason Woo, Jackie Neider, OpenGL Programming Guide, 'The Red Book' kann auch hier eingesehen werden. Grundlegendes Buch für die Open Graphics Library.
  • H.J. Bungartz, M. Griebel, C. Zenger, Einführung in die Computergraphik
Nach oben
Impressum – Datenschutz – Kontakt  |  Letzte Änderung am 16.07.2007 von Otmar Hilliges (rev 2930)