CGSG/Workshop
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
- Slides 1. Teil (13.2.2010) – PDF, 1324kB
Beispiel-Code
- Makefile Achtung, muss für euer System angepasst werden:
- Mac OS X mit SDL als framwork:
CFLAGS = SDLMain.m
undLIBS = -framework SDL -framework Cocoa -framework OpenGL
- Unix (inkl. Mac OS X mit SDL als .dylib):
CFLAGS = `sdl-config --cflags`
undLIBS = `sdl-config --libs` -lGL -lGLU
- Mac OS X mit SDL als framwork:
- basicsdl.cpp SDL "Rahmen-Applikation"
- triangle.cpp weißes Dreieck auf schwarzem Hintergrund
- Perspektive:
- proj_ortho.cpp orthographische Projektion
- proj_persp.cpp perspektivische Projektion
- 3 Varianten, ein Dreieck zu verschieben:
- transtri1.cpp Vertices modifizieren
- transtri2.cpp glTranslatef()
- transtri3.cpp Kamera-Position verändern
- tricolor.cpp Dreieck in Farbe
- 3ddrawing.cpp 3D-Aufgabe "Haus"
Weiterführende Literatur, Tutorials, etc.
- OpenGL Redbook - *das* Buch zu OpenGL ("OpenGL Programming Guide")
- Nate Robins' Tutorials - Demos zu Projektion, Transformationen, etc. (sehr zu empfehlen!)
Interessenten
- michael
- geo
- Pepi
- georg k.
- alpi
- Olaf
- jürgen
- cypher
- tkolar
- Phantasus
- oib
- skrach
- queltos
- ra
- amir
- Bountin
- steffi
- ylem235
- Sekhmet
- xcode
- snaut
- Damian
- Woodson
- Vandebina
- mephinet
- Isis
- RavuAlHemio
- kay
- Jüfe
- Martin
- phaebz
- Beni
- Daniel
- your name here
Archiv
Push teh pixels!!