Presentation is loading. Please wait.

Presentation is loading. Please wait.

OPENGL.

Similar presentations


Presentation on theme: "OPENGL."— Presentation transcript:

1 OPENGL

2 OpenGL OpenGL resources: www.opengl.org
The Red Book, Manual pages,

3 OpenGL OpenGL core library OpenGL Utility (GLU)
OpenGL Utility Toolkit (GLUT) Header files: #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h>

4 #include <GL/glut.h> // (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. OpenGL

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_LINES GL_LINE_STRIP glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glEnd(); GL_LINE_LOOP p3 p3 p5 p1 p1 p2 p4 p2 p4 p3 p5 p1 p2 p4

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

9 OpenGL Polygon Functions glRect*(x1, y1, x2, y2); Ex: Ex: 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); (50, 250) (200, 100)

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

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

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

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

14 OpenGL RGB colors Red Green Blue Color Black 1 Cyan Magenta Yellow
Black 1 Cyan Magenta Yellow White

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 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 I Modelview Matrix glColor3f (0.0, 0.0, 1.0); // blue
glRecti(0,0,80,40); glFlush ( ); Modelview Matrix I

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

23 OpenGL I I.T I.T.S Modelview Matrix glColor3f (0.0, 0.0, 1.0); // blue
glRecti(0,0,80,40); glFlush ( ); Modelview Matrix I glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); 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.S

24 OpenGL I I.T I.T.S I.T.S.R Modelview Matrix
glColor3f (0.0, 0.0, 1.0); // blue glRecti(0,0,80,40); glFlush ( ); Modelview Matrix I glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); 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.S glColor3f (0.0, 1.0, 0.0); // green glRotatef(20.0, 0.0, 0.0, 1.0); glRecti(0,0,80,40); glFlush ( ); I.T.S.R

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

26 OpenGL I I.T I.T.S I.T.R glColor3f (0.0, 0.0, 1.0); // blue
glRecti(0,0,80,40); glFlush ( ); I glColor3f (1.0, 0.0, 0.0); // red glTranslatef(10.0, 10.0, 0.0); glRecti(0,0,80,40); glPushMatrix(); glFlush ( ); I.T 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.S 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.T.R

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

28 OpenGL – 2D Viewing Create Display Window Display Window Mode
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 (00 – 1800) 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 P0=(x0, y0, z0) the reference position Pref=(xref, yref, zref) and the viewup vector V=(Vx, Vy, Vz) double-precision, floating-point values xw yw zw xv yv zv V P0 N Pref

32 OpenGL – 3D Viewing gluLookAt (x0, y0, z0, xref, yref, zref, Vx, Vy, Vz) Default parameters are: P0=(0,0,0) Pref=(0,0,-1) V=(0,1,0) xw yw zw xv yv zv V P0 Pref

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."

Similar presentations


Ads by Google