Presentation is loading. Please wait.

Presentation is loading. Please wait.

OPENGL. OpenGL OpenGL resources: www.opengl.org The Red Book, www.glprogramming.com/red/www.glprogramming.com/red/ Manual pages, www.opengl.org/sdk/docs/man3/www.opengl.org/sdk/docs/man3/

Similar presentations


Presentation on theme: "OPENGL. OpenGL OpenGL resources: www.opengl.org The Red Book, www.glprogramming.com/red/www.glprogramming.com/red/ Manual pages, www.opengl.org/sdk/docs/man3/www.opengl.org/sdk/docs/man3/"— Presentation transcript:

1 OPENGL

2 OpenGL OpenGL resources: The Red Book, Manual pages,

3 OpenGL OpenGL core library OpenGL Utility (GLU) OpenGL Utility Toolkit (GLUT) Header files: #include

4 OpenGL #include // (or others, depending on the system in use) void init (void) { glClearColor (1.0, 1.0, 1.0, 0.0); // Set display-window color to white. glMatrixMode (GL_PROJECTION); // Set projection parameters. gluOrtho2D (0.0, 200.0, 0.0, 150.0); } void lineSegment (void) { glClear (GL_COLOR_BUFFER_BIT); // Clear display window. glColor3f (0.0, 0.0, 1.0); // Set line segment color to blue. glBegin (GL_LINES); glVertex2i (180, 15); // Specify line-segment geometry. glVertex2i (10, 145); glEnd ( ); glFlush ( ); // Process all OpenGL routines as quickly as possible. } void main (int argc, char** argv) { glutInit (&argc, argv); // Initialize GLUT. glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // Set display mode. glutInitWindowPosition (50, 100); // Set top-left display-window position. glutInitWindowSize (400, 300); // Set display-window width and height. glutCreateWindow ("An Example OpenGL Program"); // Create display window. init ( ); // Execute initialization procedure. glutDisplayFunc (lineSegment); // Send graphics to display window. glutMainLoop ( ); // Display everything and wait. }

5 OpenGL Point Functions glVertex*( ); * : 2, 3, 4 i (integer) s (short) f (float) d (double) Ex: glBegin(GL_POINTS); glVertex2i(50, 100); glEnd(); Ex: int p1[ ]={50, 100}; glBegin(GL_POINTS); glVertex2iv(p1); glEnd();

6 OpenGL Line Functions GL_LINES GL_LINE_STRIP GL_LINE_LOOP Ex: glBegin(GL_LINES); glVertex2iv(p1); glVertex2iv(p2); glEnd();

7 OpenGL glBegin(GL_LINES); GL_LINESGL_LINE_STRIP glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glEnd(); GL_LINE_LOOP p1 p2 p3 p2 p4 p3 p5 p4 p5

8 OpenGL glBegin(GL_POINTS); GL_POINTS glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glEnd(); glPointSize(size); size: 1,2,… Ex: glPointSize(2.0);// 2x2 pixels p1 p2 p3 p5 p4

9 OpenGL Polygon Functions glRect*(x1, y1, x2, y2); i (integer) s (short) f (float) d (double) v (vector) Ex: glRecti(200, 100, 50, 250); Ex: int v1[ ]={200, 100}; int v2[ ]={50, 250}; glRectiv(v1, v2); (200, 100) (50, 250)

10 OpenGL Ex: glBegin (GL_POLYGON); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glEnd(); p6 p5 p4 p3p2 p1 GL_POLYGON

11 OpenGL Ex: glBegin (GL_TRIANGLES); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glEnd(); GL_TRIANGLES p6 p5 p4 p3p2 p1

12 OpenGL Ex: glBegin (GL_TRIANGLES); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p6); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glEnd(); GL_TRIANGLES GL_TRIANGLE_STRIPGL_TRIANGLE_FAN p6 p5 p4 p3p2 p1 p6 p5 p4 p3p2 p1 p6 p5 p4 p3p2 p1

13 OpenGL Ex: glBegin (GL_QUADS); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glVertex2iv(p7); glVertex2iv(p8); glEnd(); p6 p5 p4 p3 p2 p1 GL_QUADS GL_QUAD_STRIP p7 p8

14 OpenGL RGB colors RedGreenBlueColor 000Black 001Blue 010Green 011Cyan 100Red 101Magenta 110Yellow 111White

15 OpenGL Color Functions glClearColor(r, g, b, a);0.0 ≤ r, g, b, a ≤ 1.0 specifies the color for color buffers glClear(GL_COLOR_BUFFER_BIT); applies the clear color to the color buffers Ex: glClearColor(1.0, 1.0, 1.0, 0.0);// White glColor(GL_COLOR_BUFFER_BIT);

16 OpenGL Color Functions glColor3f(r, g, b);0.0 ≤ r, g, b ≤ 1.0 Ex: glColor3f(1.0, 0.0, 0.0);// Red glColor3ub(r, g, b);0 ≤ r, g, b ≤ 255 Ex: glColor3ub(255, 0, 0);// Red

17 OpenGL Reshape Function glutReshapeFunc(func); Ex: glutReshapeFunc(my_reshape_func);

18 OpenGL – Transformations Matrix Operations glMatrixMode routine: Projection mode (GL_PROJECTION) Modelview mode ( GL_MODELVIEW) Texture mode Color mode

19 OpenGL – Transformations Modelview Mode glMatrixMode(GL_MODELVIEW); designates 4x4 modelview matrix as the current matrix. glLoadIdentity(); assigns the identity matrix to the current matrix.

20 OpenGL – Transformations Translate glTranslatef (tx, ty, tz); Scale glScalef (sx, sy, sz); Rotate glRotatef (theta, vx, vy, vz);

21 OpenGL glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); I Modelview Matrix

22 OpenGL glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); glFlush ( ); I I.T Modelview Matrix

23 OpenGL glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glScalef(2.0, 2.0, 0.0); glRecti(0,0,80,40); glFlush ( ); I I.T I.T.S Modelview Matrix

24 OpenGL glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glScalef(2.0, 2.0, 0.0); glRecti(0,0,80,40); glFlush ( ); glColor3f (0.0, 1.0, 0.0); // green glRotatef(20.0, 0.0, 0.0, 1.0); glRecti(0,0,80,40); glFlush ( ); I I.T I.T.S I.T.S.R Modelview Matrix

25 OpenGL – Transformations Matrix Stack glPushMatrix (); glPopMatrix ();

26 OpenGL glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); glPushMatrix(); glFlush ( ); I.T glColor3f (1.0, 0.0, 0.0); // red glScalef(2.0, 2.0, 0.0); glRecti(0,0,80,40); glFlush ( ); I.T glColor3f (0.0, 1.0, 0.0); // green glPopMatrix(); glRotatef(20.0, 0.0, 0.0, 1.0); glRecti(0,0,80,40); glFlush ( ); I I.T I.T.S I.T.R

27 OpenGL – 2D Viewing Clipping Window gluOrtho2D (xwmin, xwmax, ywmin, ywmax); float or double Viewport Function glViewport (xvmin, yvmin, vpWidth, vpHeight); integer (xvmin, yvmin) (xwmax, ywmax) Window Viewport (xwmin, ywmin) vpWidth vpHeight

28 OpenGL – 2D Viewing Create Display Window glutInit (&argc, &argv) glutInitWindowPosition (xTopLeft, yTopLeft) glutInitWindowSize (width, height) windowID=glutCreateWindow (“title”) glutDestroyWindow (windowID) Display Window Mode glutInitDisplayMode (mode) Ex: glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

29 OpenGL – 2D Viewing Display Functions glutDisplayFunction (dFunc) dFunc (callback function) describes what is to be displayed in the current window glutPostRedisplay () Indicates that the contents of the current display window should be renewed glutIdleFunc (iFunc) iFunc is executed when there are no other events for the system to process glutMainLoop ()

30 OpenGL – 3D Viewing Projection glMatrixMode (GL_PROJECTION) Orthogonal Projection gluOrtho (xwmin, xwmax, ywmin, ywmax, dnear, dfar) Perspective Projection gluPerspective (theta, aspect, dnear, dfar) theta: field-of-view angle (0 0 – ) aspect: aspect ratio of the clipping window (width/height) dnear, dfar: positions of the near and far planes (must have positive values) glFrustum (xwmin, xwmax, ywmin, ywmax, dnear, dfar) if xwmin = -xwmax and ywmin = -ywmax then symmetric view volume

31 OpenGL – 3D Viewing glMatrixMode (GL_MODELVIEW) gluLookAt (x0, y0, z0, xref, yref, zref, Vx, Vy, Vz) Designates the origin of the viewing reference frame as, the world coordinate position P 0 =(x0, y0, z0) the reference position Pref=(xref, yref, zref) and the viewup vector V=(Vx, Vy, Vz) double-precision, floating-point values xwxw ywyw zwzw xvxv yvyv zvzv V P0P0 N P ref

32 OpenGL – 3D Viewing gluLookAt (x0, y0, z0, xref, yref, zref, Vx, Vy, Vz) Default parameters are: P 0 =(0,0,0) P ref =(0,0,-1) V=(0,1,0) xwxw ywyw zwzw xvxv yvyv zvzv V P0P0 P ref

33 OpenGL float eye_x, eye_y, eye_z; void init (void) { glClearColor (1.0, 1.0, 1.0, 0.0); // Set display-window color to white. glMatrixMode (GL_PROJECTION); // Set projection parameters. glLoadIdentity(); gluPerspective(80.0, 1.0, 50.0, 500.0);// degree, aspect, near, far glMatrixMode (GL_MODELVIEW); eye_x = eye_y = eye_z = 60; gluLookAt(eye_x, eye_y, eye_z, 0,0,0, 0,1,0); // eye, look-at, view-up } void main (int argc, char** argv) { glutInit (&argc, argv); // Initialize GLUT. glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // Set display mode. glutInitWindowPosition (50, 500); // Set top-left display-window position. glutInitWindowSize (400, 300); // Set display-window width and height. glutCreateWindow ("An Example OpenGL Program"); // Create display window. glViewport (0, 0, 400, 300); init ( ); // Execute initialization procedure. glutDisplayFunc (my_objects); // Send graphics to display window. glutReshapeFunc(reshape); glutKeyboardFunc(keybrd); glutMainLoop ( ); // Display everything and wait. }

34 OpenGL Functions Cube glutSolidCube (size) glutWireCube (size) Cone glutSolidCone (base_radius, height, slices, stacks) glutWireCone (base_radius, height, slices, stacks) Sphere glutSolidSphere (radius, slices, stacks) glutWireSphere (radius, slices, stacks) Teapot glutSolidTeapot (size) glutWireTeapot (size) Torus glutSolidTorus (inner_radius, outer_radius, nsides, rings) glutWireTorus (inner_radius, outer_radius, nsides, rings)

35 OpenGL Functions Tetrahedron glutSolidTetrahedron () glutWireTetrahedron () 4 sided Octahedron glutSolidOctahedron () glutWireOctahedron () 8 sided Dodecahedron glutSolidDodecahedron () glutWireDodecahedron () 12 sided Icosahedron glutSolidIcosahedron () glutWireIcosahedron () 20 sided


Download ppt "OPENGL. OpenGL OpenGL resources: www.opengl.org The Red Book, www.glprogramming.com/red/www.glprogramming.com/red/ Manual pages, www.opengl.org/sdk/docs/man3/www.opengl.org/sdk/docs/man3/"

Similar presentations


Ads by Google