Professional Documents
Culture Documents
Tong Quan OpenGL
Tong Quan OpenGL
TH CHI
OpenGL l g?
L mt giao din gia phn mm vi phn cng ha. Mt giao din lp trnh ha 3D ( khong 150 hm). c lp vi phn cng. Nhanh C tnh m http://www.opengl.org
Nn ng dng ca OpenGL
Lch s ca OpenGL
ng dng ca Opengl
Computer Aided Design(CAD) Computer Aided Manufacturing Architecture Simulation Virtual Reality Visualization Games Movies Medical Imaging
CAD
Movies
Games
Visualization
Virtual Reality
Mobile media
ha my tnh
Vector Graphics: nh c to ra t cc khi hnh c bn: im, ng thng, ng cong, v cc khi hnh khc.
X l ha
Header File
Gl.h
Note
V v x l hnh 2D, 3D c bn H tr camera v cc hnh phc tp - Qun l window - Display callback - Nhp xut -V mt s i tng 3D phc tp
Glu32.lib
Glu.h
Glut32.lib Glaux.lib
Glut.h Glaux.h
C php t tn
Th vin
Hm c bn
S lng i s
Kiu d liu
Cc hm ca OpenGL bt u vi tin t gl Cc hm tin ch bt u vi tin t glu Kiu d liu bt u vi tin t GL Cc hng s c vit hoa v bt u vi tin t GL_ V d: glVertex2f() GL_COLOR_BUFFER_BIT
Kiu d liu
8-bit integer 16-bit integer
I
F D Ub
32-bit integer
32-bit floating-point 64-bit floating-point 8-bit unsigned integer
int or long
Float Double unsigned char
GLint, Glsizei
GLfloat, Glclampf GLdouble, GLclampd
Us
Ui
unsigned short
unsigned int or unsigned long
glVertex*() : thit lp cc im glColor*() : thit lp mu hin ti glIndex*() : thit lp ch s mu hin ti glNormal*() : nh sng glTexCoord*() : Texture glMaterial*()
Khi c bn
Tt c cc khi hnh xc nh bi cc vector
GL_POINTS
GL_LINES GL_LINE_STRIP
GL_LINE_LOOP
GL_POLYGON
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
GL_QUADS GL_QUAD_STRIP
Points
glBegin(GL_POINTS); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p7 p6 p5
p0 p1 p2
p3
p4
Line Segments
glBegin(GL_LINES); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
glBegin(GL_LINE_STRIP); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
glBegin(GL_LINE_LOOP); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Polygon
glBegin(GL_POLYGON); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Quadrilaterals
glBegin(GL_QUADS); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Quadstrip
glBegin(GL_QUAD_STRIP); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p0); glVertex2fv(p4); glVertex2fv(p7); glVertex2fv(p5); glVertex2fv(p6); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Triangles
glBegin(GL_TRIANGLES); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Triangle Strip
glBegin(GL_TRIANGLE_STRIP); glVertex2fv(p0); glVertex2fv(p7); glVertex2fv(p1); glVertex2fv(p6); glVertex2fv(p2); glVertex2fv(p5); glVertex2fv(p3); glVertex2fv(p4); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Triangle Fan
glBegin(GL_TRIANGLE_FAN); glVertex2fv(p0); glVertex2fv(p1); glVertex2fv(p2); glVertex2fv(p3); glVertex2fv(p4); glVertex2fv(p5); glVertex2fv(p6); glVertex2fv(p7); glEnd();
p0 p7 p1
p6
p2
p5
p3
p4
Khi to ca s
void init() { glClearColor (0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 1.0, 1.0); glMatrixMode (GL_PROJECTION); glLoadIdentity (); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); viewing volume
To Project u tin