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
(+= Slides vom 2. Teil, += Hausaufgabe 2. Teil, 2.Termin => past)
Zeile 4: Zeile 4:
'''''[http://www.opengl.org/ 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.'' --[[wde:OpenGL|Wikipedia]]
'''''[http://www.opengl.org/ 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.'' --[[wde:OpenGL|Wikipedia]]


== Nächster Termin (Fortsetzung) ==
== Hausaufgabe :) ==


* Wann: Samstag, '''29. September''' 2007, 16:00
'''Beleuchtung und Texturen''' - das  "Haus" ([http://kyrah.net/scratch/opengl/src/06_3ddrawing.cpp 06_3ddrawing.cpp]), das wir im ersten Teil gezeichnet haben, beleuchten und texturieren.
* Wo: Metalab, [[Lage|Rathausstrasse 6]], 1010 Vienna


=== Inhalt ===
== Software ==
* Beleuchtung
* Texturierung
* Modelle laden
* Vertex Arrays und VBOs


=== Ich war beim ersten Termin nicht da, kann ich trotzdem noch einsteigen? ===
Zusätzlich zu OpenGL bitte installieren:


Ja, klar!
* [http://www.libsdl.org/ SDL]
 
* [http://www.libsdl.org/projects/SDL_image/ SDL_image]
Was wir bisher gemacht haben, siehst du in den Folien und den dazugehörigen Code-Beispielen (siehe unten), bei Fragen dazu einfach mit [[Benutzer:Kyrah|mir]] Kontakt aufnehmen.
 
== Hausaufgabe  ;) ==
 
Sonnensystem (Sonne, mind. 3 Planeten, mind. einer davon mit Mond...)
 
Hinweis: eine Kugel kann man z.B. wie folgt zeichnen:
 
<pre>
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);
}
</pre>


== Unterlagen ==
== Unterlagen ==
Zeile 43: Zeile 20:
'''Präsentation:'''
'''Präsentation:'''


[http://kyrah.net/scratch/opengl/cg-intro-1.pdf Teil 1] (15.9.2007) – PDF, 1052kB
* [http://kyrah.net/scratch/opengl/cg-intro-1.pdf Teil 1] (15.9.2007) – PDF, 1052kB
* [http://kyrah.net/scratch/opengl/cg-intro-2.pdf Teil 2] (29.9.2007) - PDF, 1452kB


'''Code-Beispiele:'''
'''Code-Beispiele 1. Teil:'''
# [http://kyrah.net/scratch/opengl/src/Makefile Makefile] – Achtung, muss für euer System angepasst werden:
# [http://kyrah.net/scratch/opengl/src/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>
Zeile 60: Zeile 38:
# [http://kyrah.net/scratch/opengl/src/05_tricolor.cpp 05_tricolor.cpp] Dreieck in Farbe
# [http://kyrah.net/scratch/opengl/src/05_tricolor.cpp 05_tricolor.cpp] Dreieck in Farbe
# [http://kyrah.net/scratch/opengl/src/06_3ddrawing.cpp 06_3ddrawing.cpp] 3D-Aufgabe "Haus"
# [http://kyrah.net/scratch/opengl/src/06_3ddrawing.cpp 06_3ddrawing.cpp] 3D-Aufgabe "Haus"
'''Code-Beispiele 2. Teil:'''
--coming soon


'''Nate Robins' Tutorials'''
'''Nate Robins' Tutorials'''


Die von mir gezeigten Demos zu Projektion, Transformationen, &c. könnt ihr von von [http://www.xmission.com/~nate/tutors.html Nate Robins Website] herunterladen.
Die von mir gezeigten Demos zu Projektion, Transformationen, &c. könnt ihr von von [http://www.xmission.com/~nate/tutors.html Nate Robins' Website] herunterladen.


=== Anderes ===
=== Anderes ===
Zeile 69: Zeile 50:
* [[Media:SharpGL House.zip|SharpGL House]] 3D-Aufgabe "Haus" ([http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx Visual Studio 2008]; [http://www.dopecode.co.uk/sharpgl/index.php SharpGL]) – ''(contributed by MovGP0)''
* [[Media:SharpGL House.zip|SharpGL House]] 3D-Aufgabe "Haus" ([http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx Visual Studio 2008]; [http://www.dopecode.co.uk/sharpgl/index.php SharpGL]) – ''(contributed by MovGP0)''
* [http://www.opengl.org/resources/faq/technical/projection_abuse.php Help stamp out GL_PROJECTION abuse]; mehr zum thema GL_PROJECTION / gluLookAt
* [http://www.opengl.org/resources/faq/technical/projection_abuse.php Help stamp out GL_PROJECTION abuse]; mehr zum thema GL_PROJECTION / gluLookAt
== 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 [[Benutzer:Kyrah|mir]] Kontakt aufnehmen.


== Past ==
== Past ==


=== Erster Termin (Grundlagen) ===
=== 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.
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.


Ich kann auch gern im Anschluss individuelle Workshops in Kleingruppen anbieten, Interessenten sollten aber bitte unbedingt die Einführung besuchen! Auch ein 2. Teil über High-Level 3D-Graphik mit [http://coin3d.org Coin3D] ist geplant.
==== Termin ====
 
* Wann: Samstag, '''September 15''' 2007, 15:00
* Wo: Metalab, [[Lage|Rathausstrasse 6]], 1010 Vienna
 
==== Hausaufgabe  ;) ====
 
Sonnensystem (Sonne, mind. 3 Planeten, mind. einer davon mit Mond...)


Wer das ganze gleich auf dem eigenen Laptop ausprobieren möchte, bitte zusätzlich zu OpenGL folgendes installieren:
Hinweis: eine Kugel kann man z.B. wie folgt zeichnen:


* [http://www.libsdl.org/ SDL]
<pre>
* (optional) [http://www.libsdl.org/projects/SDL_image/ SDL_image]
void drawSphere(float radius, GLint slices=20, GLint stacks=20)
* (optional) [http://lib3ds.sourceforge.net/ lib3ds]
{
  GLUquadricObj* q = gluNewQuadric();
  gluQuadricDrawStyle (q, GLU_FILL);
  gluQuadricNormals  (q, GLU_SMOOTH);
  gluSphere (q, radius, slices, stacks);
  gluDeleteQuadric(q);
}
</pre>
 
=== Zweiter Termin (Fortsetzung) ===


==== Termin ====
==== Inhalt ====
* Beleuchtung
* Texturierung
* Timer-basierte Animation, Fullscreen-Mode,...


* Wann: Samstag, '''September 15''' 2007, 15:00
==== Inhalt ====
* Wann: Samstag, '''29. September''' 2007, 16:00
* Wo: Metalab, [[Lage|Rathausstrasse 6]], 1010 Vienna
* Wo: Metalab, [[Lage|Rathausstrasse 6]], 1010 Vienna


[[Kategorie:Workshops]]
[[Kategorie:Workshops]]

Version vom 30. September 2007, 12:02 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:

  • Teil 1 (15.9.2007) – PDF, 1052kB
  • Teil 2 (29.9.2007) - PDF, 1452kB

Code-Beispiele 1. Teil:

  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"

Code-Beispiele 2. Teil: --coming soon

Nate Robins' Tutorials

Die von mir gezeigten Demos zu Projektion, Transformationen, &c. könnt ihr von von Nate Robins' Website herunterladen.

Anderes

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