o a polygon is a plane figure specified by a set of three or more coordinate positions, called...
TRANSCRIPT
Polygon Details
O a polygon is a plane figure specified by a set of three or more coordinate positions, called vertices, that are connected in sequence by straight-Line segments, called the edges or sides of the polygon.
What is the Polygon?
RectangleO Rectangle is a polygon.O OpenGL provides a filled-rectangle drawing
primitive, glRectO We need 2 points to define one rectangle.O gl. glRect{sifd}( x1, y1, x2, y2);
x1,y1
x2,y2
Rectangle ex.O gl.glColor3f(0,1f,0);
Ogl.glRecti(100,50,-100,-50);
OUTPUT
PolygonO A polygon has two sides -front and back.O If vertices of polygons appear in
counterclockwise order called front-facing.O Because OpenGL by default use counterclockwise
then also we use counterclockwise to draw polygon.
O We bracket each set of vertices between a call to glBegin() and a call to glEnd().
Polygon Ex.gl.glBegin(GL2.GL_POLYGON);
gl.glVertex2i(-50,75);
gl.glVertex2i(-100,0);
gl.glVertex2i(-50,-75);
gl.glVertex2i(50,-75);
gl.glVertex2i(100,0);
gl.glVertex2i(50,75);
gl.glEnd(); OUTPUT
Class Activity
Geometric Drawing Primitives
Geometric Drawing Primitives
Polygon face ModeO Each polygon shape contains of two faces, Front and
Back.O By default both of them are FillO The PolygonMode use to control the polygon faces
such as (Fill, Line or Point).
Fill Mode Line Mode Point Mode
Polygon face Modegl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL);
gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE);
gl.glPolygonMode(GL2.GL_FRONT_AND_BACK, GL2.GL_POINT);
O To change the face of polygon form Front to Back or Back to Front we use
gl.glFrontFace(GL2.GL_CW); (ClockWise)
gl.glFrontFace(GL2.GL_CCW); (CounterClockWise)
Polygon face Mode Ex.
gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL);
gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE);
gl.glFrontFace(GL2.GL_CW);
gl.glBegin(GL2.GL_POLYGON);
gl.glVertex2i(0,100);
gl.glVertex2i(-75,0);
gl.glVertex2i(0,-100);
gl.glVertex2i(75,0);
gl.glEnd(); OUTPUT
Class Activity
Polygon Offset
O If you want to highlight the edges of a solid object, you might draw the object with polygon mode set to GL_FILL, and then draw it again, but in a different color and with the polygon mode set to GL_LINE
O The problem: Depth values are not the sameO This undesirable effect can be eliminated by
using polygon offset, which adds an appropriate offset to force coincident z values apart, separating a polygon edge from its highlighting line
Polygon Offset
Polygon Offset
Culling Polygon Faces
O To discard front-or back-facing polygons, use the command glCullFace() and enable culling with glEnable().
O We can discard GL_FRONT,GL_BACK or both faces GL_FRONT_AND_BACK.
O Culling enabled using glEnable() with GL_CULL_FACE, and disabled using glDisable()
Culling Polygon Faces Ex.
O gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_FILL);O gl.glPolygonMode(GL2.GL_BACK,GL2.GL_LINE);O gl.glFrontFace(GL2.GL_CCW);
O gl.glCullFace(GL2.GL_FRONT);O gl.glEnable(GL2.GL_CULL_FACE);O gl.glBegin(GL2.GL_POLYGON);O gl.glVertex2i(0,100);O gl.glVertex2i(-75,-50);O gl.glVertex2i(75,-50);O gl.glEnd();
O gl.glDisable(GL2.GL_CULL_FACE);
Discarding Boundary Edges
O gl.glEdgeFlag(boolean flag) use to discard the boundary edges of polygon, this method only use with LINE mode of polygon.
O used between glBegin() and glEnd() .O boolean flag can be true or false if flag is false then all
edges after the glEdgeFlag() command is discarded .O When we want to disable discarding edges we change
the flag to true.
EdgeFlag() Ex.O gl.glPolygonMode(GL2.GL_FRONT,GL2.GL_LINE);O gl.glPolygonMode(GL2.GL_BACK,GL2.GL_FILL);O gl.glFrontFace(GL2.GL_CCW);
O gl.glBegin(GL2.GL_POLYGON);
gl.glEdgeFlag(false);O gl.glVertex2i(100,50);O gl.glEdgeFlag(true);O gl.glVertex2i(-75,50);O gl.glEdgeFlag(false);O gl.glVertex2i(-100,-50);O gl.glEdgeFlag(true);O gl.glVertex2i(75,-50);
gl.glEnd();
HomeWork