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
K (Fixed b0rken links)
K (→‎Teil 2: moved code samples to Metalab SVN)
Zeile 38: Zeile 38:
''Beispiel-Code''
''Beispiel-Code''
# Beleuchtung
# Beleuchtung
## [http://kyrah.net/scratch/opengl/src/07-firstlight.cpp 07-firstlight.cpp] einfache Lichtquelle
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/firstlight.cpp firstlight.cpp] einfache Lichtquelle
## [http://kyrah.net/scratch/opengl/src/07-materialcolour.cpp 07-materialcolour.cpp] Materialfarben
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/materialcolour.cpp materialcolour.cpp] Materialfarben
## [http://kyrah.net/scratch/opengl/src/07-components.cpp 07-components.cpp] Materialkomponenten (ambient/diffuse/specular)
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/components.cpp components.cpp] Materialkomponenten (ambient/diffuse/specular)
## [http://kyrah.net/scratch/opengl/src/07-lightcolour.cpp 07-lightcolour.cpp] Lichtfarben
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/lightcolour.cpp lightcolour.cpp] Lichtfarben
## [http://kyrah.net/scratch/opengl/src/07-movinglight.cpp 07-movinglight.cpp] bewegte Lichtquelle
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/movinglight.cpp movinglight.cpp] bewegte Lichtquelle
## [http://kyrah.net/scratch/opengl/src/07-house.cpp 07-house.cpp] das Haus aus der Aufgabe vom letzten Mal mit Beleuchtung
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/lighting/house.cpp house.cpp] das "Haus" vom 1. Workshop mit Beleuchtung
# Needful Things
# Needful Things
## [http://kyrah.net/scratch/opengl/src/08-movinglight-keyrepeat.cpp 08-movinglight-keyrepeat.cpp] verbesserte Tastatureingabe
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/animation/keyrepeat.cpp keyrepeat.cpp] verbesserte Tastatureingabe
## [http://kyrah.net/scratch/opengl/src/08-timer.cpp 08-timer.cpp] Animation mit Timer
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/animation/tba.cpp tba.cpp] zeitbasierte Animation
## [http://kyrah.net/scratch/opengl/src/08-timer-waitevent.cpp 08-timer-waitevent.cpp] Animation mit Timer und SDL_WaitEvent()
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/animation/timer.cpp timer.cpp] Animation mit Timer
## <strike>[http://kyrah.net/scratch/opengl/src/08-notimer-waitevent.cpp 08-notimer-waitevent.cpp] Animation OHNE Timer und SDL_WaitEvent()</strike>
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/animation/timer-waitevent.cpp timer-waitevent.cpp] Animation mit Timer und SDL_WaitEvent()
# Texturen
# Texturen
## [http://kyrah.net/scratch/opengl/src/09-texturing/09-texturing.cpp 09-texturing.cpp] [http://kyrah.net/scratch/opengl/src/09-texturing/Image.h Image.h]  [http://kyrah.net/scratch/opengl/src/09-texturing/Image.cpp Image.cpp] [http://kyrah.net/scratch/opengl/src/09-texturing/Makefile Makefile]  [http://kyrah.net/scratch/opengl/src/09-texturing/crate.tga crate.tga] komplettes Beispiel zur Texturierung
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v1/texturing1.cpp texturing1.cpp] [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v1/Image.h Image.h]  [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v1/Image.cpp Image.cpp] [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v1/Makefile Makefile]  [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v1/crate.tga crate.tga] komplettes Beispiel zur Texturierung
## [http://kyrah.net/scratch/opengl/src/09-texturing/09-texturing-abstracted.cpp 09-texturing-abstracted.cpp] [http://kyrah.net/scratch/opengl/src/09-texturing/Texture.h Texture.h]  [http://kyrah.net/scratch/opengl/src/09-texturing/Texture.cpp Texture.cpp] [http://kyrah.net/scratch/opengl/src/09-texturing/Makefile-abstracted Makefile-abstracted] ditto, mit Klasse ''Texture''
## [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v2/texturing2.cpp texturing2.cpp] [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v2/Texture.h Texture.h]  [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v2/Texture.cpp Texture.cpp] [https://whatever.metalab.at/user/kyrah/opengl/workshops/ws2/textures/v2/Makefile Makefile] ditto, mit Klasse ''Texture''


<!-- coming up in the next part  
<!-- coming up in the next part  
Zeile 62: Zeile 62:
## [http://kyrah.net/scratch/opengl/src/obj/Hyundai_Coupe.zip Hyundai_Coupe.zip] Testdaten - ausführen als ''readobj Hyundai_Coupe/Hyundai_Coupe.obj''
## [http://kyrah.net/scratch/opengl/src/obj/Hyundai_Coupe.zip Hyundai_Coupe.zip] Testdaten - ausführen als ''readobj Hyundai_Coupe/Hyundai_Coupe.obj''
// -->
// -->


== Misc. ==
== Misc. ==

Version vom 30. Januar 2008, 16:53 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. 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"

Teil 2

Beispiel-Code

  1. Beleuchtung
    1. firstlight.cpp einfache Lichtquelle
    2. materialcolour.cpp Materialfarben
    3. components.cpp Materialkomponenten (ambient/diffuse/specular)
    4. lightcolour.cpp Lichtfarben
    5. movinglight.cpp bewegte Lichtquelle
    6. house.cpp das "Haus" vom 1. Workshop mit Beleuchtung
  2. Needful Things
    1. keyrepeat.cpp verbesserte Tastatureingabe
    2. tba.cpp zeitbasierte Animation
    3. timer.cpp Animation mit Timer
    4. timer-waitevent.cpp Animation mit Timer und SDL_WaitEvent()
  3. Texturen
    1. texturing1.cpp Image.h Image.cpp Makefile crate.tga komplettes Beispiel zur Texturierung
    2. texturing2.cpp Texture.h Texture.cpp Makefile ditto, mit Klasse Texture


Misc.