CGSG/Workshop: Unterschied zwischen den Versionen
(→Übungsaufgaben: sourcecode sonnensystem, link zu redbook, hf) |
Kyrah (Diskussion | Beiträge) (Code-Beispiele vom 2. Workshop) |
||
Zeile 40: | Zeile 40: | ||
'''Code-Beispiele 2. Teil:''' | '''Code-Beispiele 2. Teil:''' | ||
− | --coming | + | # Beleuchtung |
+ | ## [http://kyrah.net/scratch/opengl/src/07-firstlight.cpp 07-firstlight.cpp] einfache Lichtquelle | ||
+ | ## [http://kyrah.net/scratch/opengl/src/07-materialcolour.cpp 07-materialcolour.cpp] Materialfarben | ||
+ | ## [http://kyrah.net/scratch/opengl/src/07-components.cpp 07-components.cpp] Materialkomponenten (ambient/diffuse/specular) | ||
+ | ## [http://kyrah.net/scratch/opengl/src/07-lightcolour.cpp 07-lightcolour.cpp] Lichtfarben | ||
+ | ## [http://kyrah.net/scratch/opengl/src/07-movinglight.cpp 07-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 | ||
+ | # Needful Things | ||
+ | ## [http://kyrah.net/scratch/opengl/src/08-movinglight-keyrepeat.cpp 08-movinglight-keyrepeat.cpp] verbesserte Tastatureingabe | ||
+ | ## [http://kyrah.net/scratch/opengl/src/08-timer.cpp 08-timer.cpp] Animation mit Timer | ||
+ | ## [http://kyrah.net/scratch/opengl/src/08-timer-waitevent.cpp 08-timer-waitevent.cpp] Animation mit Timer und SDL_WaitEvent() | ||
+ | ## <strike>[http://kyrah.net/scratch/opengl/src/08-notimer-waitevent.cpp 08-notimer-waitevent.cpp] Animation OHNE Timer und SDL_WaitEvent()</strike> | ||
+ | # 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 | ||
+ | ## [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'' | ||
+ | |||
+ | <!-- coming up in the next part | ||
+ | '''Code-Beispiele 3. Teil:''' | ||
+ | # OBJ-Loader | ||
+ | ## [http://kyrah.net/scratch/opengl/src/obj/Obj.h Obj.h] [http://kyrah.net/scratch/opengl/src/obj/Obj.cpp Obj.cpp] einfache Klasse zum Laden von .OBJ-Dateien | ||
+ | ## [http://kyrah.net/scratch/opengl/src/obj/Texture.h Texture.h] [http://kyrah.net/scratch/opengl/src/obj/Texture.cpp Texture.cpp] einfache Klasse zum Laden von Texturen (siehe oben) | ||
+ | ## [http://kyrah.net/scratch/opengl/src/obj/readobj.cpp readobj.cpp] Testapplikation für OBJ-Loader | ||
+ | ## [http://kyrah.net/scratch/opengl/src/obj/Makefile Makefile] Makefile für OBJ-Loader | ||
+ | ## [http://kyrah.net/scratch/opengl/src/obj/Hyundai_Coupe.zip Hyundai_Coupe.zip] Testdaten - ausführen als ''readobj Hyundai_Coupe/Hyundai_Coupe.obj'' | ||
+ | // --> | ||
'''Nate Robins' Tutorials''' | '''Nate Robins' Tutorials''' |
Version vom 19. Oktober 2007, 14:45 Uhr
Einführung in Computergraphik/OpenGL
von kyrah
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
Hausaufgabe :)
Beleuchtung und Texturen - das "Haus" (06_3ddrawing.cpp), das wir im ersten Teil gezeichnet haben, beleuchten und texturieren.
Software
Zusätzlich zu OpenGL bitte installieren:
Unterlagen
Vortrag
Präsentation:
Code-Beispiele 1. Teil:
- 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:
- 01_basicsdl.cpp SDL "Rahmen-Applikation"
- 02_triangle.cpp weißes Dreieck auf schwarzem Hintergrund
- Perspektive
- 03_proj_ortho.cpp orthographische Projektion
- 03_proj_persp.cpp perspektivische Projektion
- 3 Varianten, ein Dreieck zu verschieben:
- 04_transtri1.cpp Vertices modifizieren
- 04_transtri2.cpp glTranslatef()
- 04_transtri3.cpp Kamera-Position verändern
- 05_tricolor.cpp Dreieck in Farbe
- 06_3ddrawing.cpp 3D-Aufgabe "Haus"
Code-Beispiele 2. Teil:
- Beleuchtung
- 07-firstlight.cpp einfache Lichtquelle
- 07-materialcolour.cpp Materialfarben
- 07-components.cpp Materialkomponenten (ambient/diffuse/specular)
- 07-lightcolour.cpp Lichtfarben
- 07-movinglight.cpp bewegte Lichtquelle
- 07-house.cpp das Haus aus der Aufgabe vom letzten Mal mit Beleuchtung
- Needful Things
- 08-movinglight-keyrepeat.cpp verbesserte Tastatureingabe
- 08-timer.cpp Animation mit Timer
- 08-timer-waitevent.cpp Animation mit Timer und SDL_WaitEvent()
08-notimer-waitevent.cpp Animation OHNE Timer und SDL_WaitEvent()
- Texturen
- 09-texturing.cpp Image.h Image.cpp Makefile crate.tga komplettes Beispiel zur Texturierung
- 09-texturing-abstracted.cpp Texture.h Texture.cpp Makefile-abstracted ditto, mit Klasse Texture
Nate Robins' Tutorials
Die von mir gezeigten Demos zu Projektion, Transformationen, &c. könnt ihr von von Nate Robins' Website herunterladen.
Übungsaufgaben
- solar_final2.cpp.txt Sonnensystem
- solar_final3.cpp.txt Sonnensystem mit Kamera auf Planet
Anderes
- SharpGL House 3D-Aufgabe "Haus" (Visual Studio 2008; SharpGL) – (contributed by MovGP0)
- Help stamp out GL_PROJECTION abuse; mehr zum thema GL_PROJECTION / gluLookAt
- http://www.glprogramming.com/red/ - sehr praktischer guide
Ich war bei den ersten beiden Terminen nicht da, kann ich trotzdem noch einsteigen?
Ja, klar!
Was wir bisher gemacht haben, siehst du in den Folien und den dazugehörigen Code-Beispielen (siehe oben), bei Fragen dazu einfach mit mir Kontakt aufnehmen.
Past
Erster Termin (Grundlagen)
Inhalt
Grundlegende Einführungsveranstaltung, Dauer ca. 2.5 - 3 Stunden. Der Workshop ist praktisch orientiert, C-Kenntnisse sind also sehr von Vorteil. Vorkenntnisse aus CG sind nicht nötig.
Termin
- Wann: Samstag, September 15 2007, 15:00
- Wo: Metalab, Rathausstrasse 6, 1010 Vienna
Hausaufgabe ;)
Sonnensystem (Sonne, mind. 3 Planeten, mind. einer davon mit Mond...)
Hinweis: eine Kugel kann man z.B. wie folgt zeichnen:
void drawSphere(float radius, GLint slices=20, GLint stacks=20) { GLUquadricObj* q = gluNewQuadric(); gluQuadricDrawStyle (q, GLU_FILL); gluQuadricNormals (q, GLU_SMOOTH); gluSphere (q, radius, slices, stacks); gluDeleteQuadric(q); }
Zweiter Termin (Fortsetzung)
Inhalt
- Beleuchtung
- Texturierung
- Timer-basierte Animation, Fullscreen-Mode,...
Inhalt
- Wann: Samstag, 29. September 2007, 16:00
- Wo: Metalab, Rathausstrasse 6, 1010 Vienna