CGSG/Workshop: Unterschied zwischen den Versionen

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
(→‎Nächster Termin: Termin festgesetzt auf 2.2.)
K (→‎Teil 1: moved sample code to Metalab SVN server)
Zeile 18: Zeile 18:


''Beispiel-Code''
''Beispiel-Code''
# [http://kyrah.net/scratch/opengl/src/Makefile Makefile] – Achtung, muss für euer System angepasst werden:
# [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/Makefile Makefile] – Achtung, muss für euer System angepasst werden:
## Mac OS X mit SDL als framwork: <code>CFLAGS =  SDLMain.m</code> und <code>LIBS = -framework SDL -framework Cocoa -framework OpenGL</code>
## Mac OS X mit SDL als framwork: <code>CFLAGS =  SDLMain.m</code> und <code>LIBS = -framework SDL -framework Cocoa -framework OpenGL</code>
## Unix (inkl. Mac OS X mit SDL als .dylib): <code>CFLAGS =  `sdl-config --cflags`</code> und <code>LIBS = `sdl-config --libs` -lGL -lGLU</code>
## Unix (inkl. Mac OS X mit SDL als .dylib): <code>CFLAGS =  `sdl-config --cflags`</code> und <code>LIBS = `sdl-config --libs` -lGL -lGLU</code>
# [http://kyrah.net/scratch/opengl/src/01_basicsdl.cpp 01_basicsdl.cpp] SDL "Rahmen-Applikation"
# [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/basicsdl.cpp 01_basicsdl.cpp] SDL "Rahmen-Applikation"
# [http://kyrah.net/scratch/opengl/src/02_triangle.cpp 02_triangle.cpp] weißes Dreieck auf schwarzem Hintergrund
# [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/triangle.cpp 02_triangle.cpp] weißes Dreieck auf schwarzem Hintergrund
# Perspektive
# Perspektive
## [http://kyrah.net/scratch/opengl/src/03_proj_ortho.cpp 03_proj_ortho.cpp] orthographische Projektion
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/proj_ortho.cpp 03_proj_ortho.cpp] orthographische Projektion
## [http://kyrah.net/scratch/opengl/src/03_proj_persp.cpp 03_proj_persp.cpp] perspektivische Projektion
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/proj_persp.cpp 03_proj_persp.cpp] perspektivische Projektion
# 3 Varianten, ein Dreieck zu verschieben:
# 3 Varianten, ein Dreieck zu verschieben:
## [http://kyrah.net/scratch/opengl/src/04_transtri1.cpp 04_transtri1.cpp] Vertices modifizieren
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/transtri1.cpp 04_transtri1.cpp] Vertices modifizieren
## [http://kyrah.net/scratch/opengl/src/04_transtri2.cpp 04_transtri2.cpp] glTranslatef()
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/transtri2.cpp 04_transtri2.cpp] glTranslatef()
## [http://kyrah.net/scratch/opengl/src/04_transtri3.cpp 04_transtri3.cpp] Kamera-Position verändern
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/transtri3.cpp 04_transtri3.cpp] Kamera-Position verändern
# [http://kyrah.net/scratch/opengl/src/05_tricolor.cpp 05_tricolor.cpp] Dreieck in Farbe
# [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/tricolor.cpp 05_tricolor.cpp] Dreieck in Farbe
# [http://kyrah.net/scratch/opengl/src/06_3ddrawing.cpp 06_3ddrawing.cpp] 3D-Aufgabe "Haus"
# [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws1/3ddrawing.cpp 06_3ddrawing.cpp] 3D-Aufgabe "Haus"


=== Teil 2 ===
=== Teil 2 ===

Version vom 30. Januar 2008, 16:12 Uhr

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

Nächster Termin

Da einige Leute beim 2. Teil (Beleuchtung + Texturen) nicht dabeisein konnten, wird es Anfang Februar eine Wiederholung des 2. Workshops geben.

Termin: Samstag, 2. Februar, 16:00

Inhalt: Kurze Wiederholung der Grundlagen vom 1. Teil, Beleuchtung, Texturen.

Eine weiterführende Fortsetzung (Teil 3) ist für Ende Februar/Anfang März geplant.

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. 01_basicsdl.cpp SDL "Rahmen-Applikation"
  3. 02_triangle.cpp weißes Dreieck auf schwarzem Hintergrund
  4. Perspektive
    1. 03_proj_ortho.cpp orthographische Projektion
    2. 03_proj_persp.cpp perspektivische Projektion
  5. 3 Varianten, ein Dreieck zu verschieben:
    1. 04_transtri1.cpp Vertices modifizieren
    2. 04_transtri2.cpp glTranslatef()
    3. 04_transtri3.cpp Kamera-Position verändern
  6. 05_tricolor.cpp Dreieck in Farbe
  7. 06_3ddrawing.cpp 3D-Aufgabe "Haus"

Teil 2

Beispiel-Code

  1. Beleuchtung
    1. 07-firstlight.cpp einfache Lichtquelle
    2. 07-materialcolour.cpp Materialfarben
    3. 07-components.cpp Materialkomponenten (ambient/diffuse/specular)
    4. 07-lightcolour.cpp Lichtfarben
    5. 07-movinglight.cpp bewegte Lichtquelle
    6. 07-house.cpp das Haus aus der Aufgabe vom letzten Mal mit Beleuchtung
  2. Needful Things
    1. 08-movinglight-keyrepeat.cpp verbesserte Tastatureingabe
    2. 08-timer.cpp Animation mit Timer
    3. 08-timer-waitevent.cpp Animation mit Timer und SDL_WaitEvent()
    4. 08-notimer-waitevent.cpp Animation OHNE Timer und SDL_WaitEvent()
  3. Texturen
    1. 09-texturing.cpp Image.h Image.cpp Makefile crate.tga komplettes Beispiel zur Texturierung
    2. 09-texturing-abstracted.cpp Texture.h Texture.cpp Makefile-abstracted ditto, mit Klasse Texture



Misc.