Академический Документы
Профессиональный Документы
Культура Документы
OpenGL Primitives
Polylines (3 primitives)
GL_LINES
GL_LINE_STRIP
GL_LINE_LOOP
Filled Polygons (6
primitives)
Triangles
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
Quadrilaterals
GL_QUADS
GL_QUAD_STRIP
General Polygons
GL_POLYGON
Points
GL_POINTS
Attributes
glPointSize(20.0);
6
5
1
4
3
2
Polylines
GL_LINES
6
5
GL_LINE_LOOP
6
5
GL_LINE_STRIP
1
4
3
2
Line Attributes
1.
2.
3.
4.
c).
OpenGL Primitives:
Polygons Triangles
Polygons: Triangles
GL_TRIANGLES
Clockwise or
counterclockwise
does not matter (yet).
GL_TRIANGLE_STRIP
5
4
2
3
GL_TRIANGLE_FAN
Polygons in OpenGL
Triangles
glBegin(GL_TRIANGLES);
glBegin(GL_TRIANGLES);
glVertex2fv(p0);
glVertex2fv(p0);
glVertex2fv(p1);
glVertex2fv(p1);
glVertex2fv(p2);
glVertex2fv(p2);
glVertex2fv(p3);
glVertex2fv(p3);
glVertex2fv(p4);
glVertex2fv(p4);
glVertex2fv(p5);
glVertex2fv(p5);
glVertex2fv(p6);
glVertex2fv(p6);
glVertex2fv(p7);
glVertex2fv(p7);
glEnd();
glEnd();
p0
p7
p1
p6
p2
p5
p3
p4
triangle
triangle
triangle
triangle
0
1
2
3
is
is
is
is
v0,
v2,
v2,
v4,
v2
v0
v4
v5
v1
v3
v1,
v1,
v3,
v3,
v2
v3 (why not v1, v2, v3?)
v4
v5 (again, not v3, v4, v5)
v3
v5
v0
v2
v6
v1
Polygons
Definition
Object that is closed as in a line loop, but that
has an interior
Simple Polygon
No pair of edges of a polygon cross each other
Simple
Nonsimple
OpenGL Primitives:
Polygons Quads, General
Polygons: Quadrilaterals
GL_QUADS
Clockwise or
counterclockwise
does not matter (yet).
5
4
GL_QUAD_STRIP
1
Note differences in
vertex ordering!
Polygons: General
GL_POLYGON
2
3
Polygons in OpenGL
Quadrilaterals
glBegin(GL_QUADS);
glBegin(GL_QUADS);
glVertex2fv(p0);
glVertex2fv(p0);
glVertex2fv(p1);
glVertex2fv(p1);
glVertex2fv(p2);
glVertex2fv(p2);
glVertex2fv(p3);
glVertex2fv(p3);
glVertex2fv(p4);
glVertex2fv(p4);
glVertex2fv(p5);
glVertex2fv(p5);
glVertex2fv(p6);
glVertex2fv(p6);
glVertex2fv(p7);
glVertex2fv(p7);
glEnd();
glEnd();
p0
p7
p1
p6
p2
p5
p3
p4
Polygons in OpenGL
Quadstrip
glBegin(GL_QUAD_STRIP);
glBegin(GL_QUAD_STRIP);
glVertex2fv(p1);
glVertex2fv(p1);
glVertex2fv(p2);
glVertex2fv(p2);
glVertex2fv(p3);
glVertex2fv(p3);
glVertex2fv(p0);
glVertex2fv(p0);
glVertex2fv(p4);
glVertex2fv(p4);
glVertex2fv(p7);
glVertex2fv(p7);
glVertex2fv(p5);
glVertex2fv(p5);
glVertex2fv(p6);
glVertex2fv(p6);
glEnd();
glEnd();
p0
p7
p1
p6
p2
p5
p3
p4
Polygons in OpenGL
Polygon
glBegin(GL_POLYGON);
glBegin(GL_POLYGON);
glVertex2fv(p0);
glVertex2fv(p0);
glVertex2fv(p1);
glVertex2fv(p1);
glVertex2fv(p2);
glVertex2fv(p2);
glVertex2fv(p3);
glVertex2fv(p3);
glVertex2fv(p4);
glVertex2fv(p4);
glVertex2fv(p5);
glVertex2fv(p5);
glVertex2fv(p6);
glVertex2fv(p6);
glVertex2fv(p7);
glVertex2fv(p7);
glEnd();
glEnd();
p0
p7
p1
p6
p2
p5
p3
p4
Assignment
1. What is the difference between
i.
quad,
ii.
quadstrip and
iii. polygons.
Implement these using openGL