CGSG/Workshop

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen

Einführung in Echtzeit-3D-Computergraphik mit OpenGL von كرا

OpenGL (Open Graphics Library) ist eine Spezifikation für ein plattform- und programmiersprachenunabhängiges API (Application Programming Interface) zur Entwicklung von 3D-Computergrafik. Der OpenGL-Standard beschreibt etwa 250 Befehle, die die Darstellung komplexer 3D-Szenen in Echtzeit erlauben. --Wikipedia

Aktuelles

Der erste Workshop findet am 13.2.2010 um 16:00 statt.

Voraussetzungen

Es sind keine Computergraphik-Vorkenntnisse erforderlich.

Ihr solltet aber zumindest rudimentäre Programmierkenntnisse haben.

Mein Beispielcode ist in C, der Workshop macht aber durchaus nicht nur für C/C++-Hacker Sinn. Ihr könnt durchaus auch in Java oder Python oder Processing oder ... arbeiten, die Konzepte sind die gleichen. Für den Workshop ist es aber in jedem Fall von Vorteil, wenn ihr in der Lage seid, auf eurer Plattform ein C-Programm zu kompilieren und auszuführen, damit ihr die gezeigten Beispiele gleich live selber ausprobieren könnt. Bitte dafür vor dem Workshop libSDL auf euren Rechnern installieren.

Inhalt

Teil 1: Basics

Der erste Teil behandelt folgende Inhalte (alles anhand von Beispiel-Programmen erklärt):

  • Basics: SDL + OpenGL
  • Die Rendering-Pipeline
  • Parallelprojektion und perspektivische Projektion
  • Koordinatensysteme und 3D Transformationen
  • Verarbeitung von Tastatureingaben
  • einfaches Zeichnen in 3D

Teil 2: Beleuchtung

  • Beleuchtungsmodelle
  • Flat Shading vs. Gouraud Shading
  • Materialeigenschaften in OpenGL
  • Lichtquellen in OpenGL (Arten, Farbangaben)
  • Bedeutung korrekter Normalvektoren

Teil 3

  • Animation
  • Texturen

Unterlagen

Teil 1

Beispiel-Code

  1. Makefile Achtung, muss für euer System angepasst werden:
    1. Mac OS X mit SDL als framwork: CFLAGS = SDLMain.m und LIBS = -framework SDL -framework Cocoa -framework OpenGL
    2. Unix (inkl. Mac OS X mit SDL als .dylib): CFLAGS = `sdl-config --cflags` und LIBS = `sdl-config --libs` -lGL -lGLU
  2. basicsdl.cpp SDL "Rahmen-Applikation"
  3. triangle.cpp weißes Dreieck auf schwarzem Hintergrund
  4. Perspektive:
    1. proj_ortho.cpp orthographische Projektion
    2. proj_persp.cpp perspektivische Projektion
  5. 3 Varianten, ein Dreieck zu verschieben:
    1. transtri1.cpp Vertices modifizieren
    2. transtri2.cpp glTranslatef()
    3. transtri3.cpp Kamera-Position verändern
  6. tricolor.cpp Dreieck in Farbe
  7. 3ddrawing.cpp 3D-Aufgabe "Haus"

Weiterführende Literatur, Tutorials, etc.

Interessenten

  1. michael
  2. geo
  3. Pepi
  4. georg k.
  5. alpi
  6. Olaf
  7. jürgen
  8. cypher
  9. tkolar
  10. Phantasus
  11. oib
  12. skrach
  13. queltos
  14. ra
  15. amir
  16. Bountin
  17. steffi
  18. ylem235
  19. Sekhmet
  20. xcode
  21. snaut
  22. Damian
  23. Woodson
  24. Vandebina
  25. mephinet
  26. Isis
  27. RavuAlHemio
  28. kay
  29. Jüfe
  30. Martin
  31. phaebz
  32. Beni
  33. Daniel
  34. moep
  35. leopold
  36. mzeltner
  37. ogott
  38. your name here

Archiv

Workshop-Reihe 2007/2008


Push teh pixels!!