Your SlideShare is downloading. ×
0
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
2010-JOGL-03-OpenGL-Crash-Course
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2010-JOGL-03-OpenGL-Crash-Course

246

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
246
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CARL VONOSSIETZKY OpenGL Crash Course Johannes Diemke ¨ Ubung im Modul OpenGL mit Java Wintersemester 2010/2011
  • 2. OpenGL Crash CourseNamenskonventionen f¨r Funktionen u Die meisten OpenGL Befehle folgen der folgenden Namenskonvention: Weitere Beispiele: void glColor3i(int red, int green, int blue) void glColor3f(float red, float green, float blue) void glColor3d(double red, double green, double blue) void glColor4f(float red, float green, float blue, float alpha) Intern nutzt OpenGL Floats → Performanz! Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 2/10
  • 3. OpenGL Crash CourseDer OpenGL Zustandsautomat Die Art und Weise wie Objekte gezeichnet werden h¨ngt von vielen a Parametern ab: Ist eine Lichtquelle vorhanden? Wie sind die Materialeigenschaften? Soll eine Textur genutzt werden? ... In OpenGL werden solche Variablen als Zustandsautomat realisiert Wird eine Zustandsvariable einmal gesetzt, so beh¨lt Sie ihren Wert a bis sie einen neuen Wert zugewiesen bekommt Viele der Zustandsvariablen k¨nnen lediglich an- und ausgeschaltet o werden Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 3/10
  • 4. OpenGL Crash CourseDer OpenGL Zustandsautomat (Forts.) Um Zustandsvariablen an- und auszuschalten k¨nnen die folgenden o Methoden genutzt werden: public void glEnable(int cap) public void glDisable(int cap) M¨gliche Parameter sind bspw.: o GL.GL_LIGHTING GL.GL_CULL_FACE GL.GL_BLEND GL.GL_ALPHA_TEST ... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 4/10
  • 5. OpenGL Crash CourseKonstruktion von Objekten Sollen komplexere Objekte dargestellt werden, so werden diese aus mehreren kleinen Formen, sogenannten Primitven, zusammengesetzt Primitive sind ein- oder zwei dimensionale Einheiten wie: Punkte Linien Polygone ... Primitive werden durch die Angabe der Raumkoordinaten ihrer Eckpunkte im dreidimensionalen Raum definiert Dabei wird ein kartesisches Koordinatensystem genutzt Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 5/10
  • 6. OpenGL Crash CourseKonstruktion von Objekten (Forts.) Zur Festlegung eines solchen Eckpunktes (engl. Vertex“) steht der ” folgende Befehl zur Verf¨gung: u void glVertex3f(float x, float y, float z)Beispiel Ein durch glVertex3f(50.0f, 50.0f, 0.0f) festgelegter Eckpunkt Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 6/10
  • 7. OpenGL Crash CourseKonstruktion von Objekten (Forts.) Primitive k¨nnen mit Hilfe eines glBegin/glEnd-Paares gezeichnet o werden Dabei bestimmt der Parameter der glBegin-Methode die zu zeichnenden Primitive: GL.GL_POINTS GL.GL_LINES GL.GL_LINE_STRIP ... In dem glBegin/glEnd-Paar werden die Eckpunkte der zu zeichnenden Primitive eingeschlossen Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 7/10
  • 8. OpenGL Crash Course ¨OpenGL Primitive im Uberblick Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 8/10
  • 9. OpenGL Crash CourseBeispiele Zeichne zwei Punkte mit den Raumkoordinaten (0, 0, 0) und (50, 50, 50) gl.glBegin(GL.GL_POINTS); gl.glVertex3f( 0.0f, 0.0f, 0.0f); gl.glVertex3f(50.0f, 50.0f, 50.0f); gl.glEnd(); Zeichne ein Liniensegment zwischen den beiden Raumkoordinaten (30, 30, 30) und (60, 60, 60) gl.glBegin(GL.GL_LINES); gl.glVertex3f(30.0f, 30.0f, 30.0f); gl.glVertex3f(60.0f, 60.0f, 60.0f); gl.glEnd(); Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 9/10
  • 10. Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Nicholas Haemel OpenGL SuperBibel http://www.starstonesoftware.com/OpenGL/ Randi J. Rost OpenGL Shading Language http://www.3dshaders.com/ Tomas Akenine-M¨ller, Eric Haines und Naty Hoffman o Real-Time Rendering http://www.realtimerendering.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/10

×