OpenGL geometric element Rendering

Source: Internet
Author: User

Execute valid functions between glbegin and glend.

Glvertex * () // sets the vertex coordinate glcolor * () // sets the current color glindex * () // sets the current color index glnormal *() // set the coordinates of the normal vector gltexcoord * () // set the texture coordinate glmultitexcoord * ARB () // set the texture coordinate gledgeflag for multiple texture mappings *() // draw glmaterial * () for the control edge // set the glarrayelement () for the material attribute // extract the vertex array data glevalcoord * () and glevalpoint * () // generate the coordinate glcalllist (), glcalllists () // execution display list


The default value is counterclockwise (Gl_ccw) In the positive direction.GlfrontfaceTo specify the front of the element.

Sample Code:

void DrawMyObjects(void){  /* draw some points */  glBegin(GL_POINTS);    glColor3f(1.0,0.0,0.0);    glVertex2f(-10.0,11.0);    glColor3f(1.0,1.0,0.0);    glVertex2f(-9.0,10.0);    glColor3f(0.0,1.0,1.0);    glVertex2f(-8.0,12.0);  glEnd();  /* draw some line_segments */  glBegin(GL_LINES);    glColor3f(1.0,1.0,0.0);    glVertex2f(-11.0,8.0);    glVertex2f(-7.0,7.0);    glColor3f(1.0,0.0,1.0);    glVertex2f(-11.0,9.0);    glVertex2f(-8.0,6.0);  glEnd();  /* draw one opened_line */  glBegin(GL_LINE_STRIP);    glColor3f(0.0,1.0,0.0);    glVertex2f(-3.0,9.0);    glVertex2f(2.0,6.0);    glVertex2f(3.0,8.0);    glVertex2f(-2.5,6.5);  glEnd();  /* draw one closed_line */  glBegin(GL_LINE_LOOP);    glColor3f(0.0,1.0,1.0);    glVertex2f(7.0,7.0);    glVertex2f(8.0,8.0);    glVertex2f(9.0,6.5);    glVertex2f(10.3,7.5);    glVertex2f(11.5,6.0);    glVertex2f(7.5,6.0);  glEnd();  /* draw one filled_polygon */  glBegin(GL_POLYGON);    glColor3f(0.5,0.3,0.7);    glVertex2f(-7.0,2.0);    glVertex2f(-8.0,3.0);    glVertex2f(-10.3,0.5);    glVertex2f(-7.5,-2.0);    glVertex2f(-6.0,-1.0);  glEnd();  /* draw some filled_quandrangles */  glBegin(GL_QUADS);    glColor3f(0.7,0.5,0.2);    glVertex2f(0.0,2.0);    glVertex2f(-1.0,3.0);    glVertex2f(-3.3,0.5);    glVertex2f(-0.5,-1.0);    glColor3f(0.5,0.7,0.2);    glVertex2f(3.0,2.0);    glVertex2f(2.0,3.0);    glVertex2f(0.0,0.5);    glVertex2f(2.5,-1.0);  glEnd();  /* draw some filled_strip_quandrangles */  glBegin(GL_QUAD_STRIP);    glVertex2f(6.0,-2.0);    glVertex2f(5.5,1.0);    glVertex2f(8.0,-1.0);    glColor3f(0.8,0.0,0.0);    glVertex2f(9.0,2.0);    glVertex2f(11.0,-2.0);    glColor3f(0.0,0.0,0.8);    glVertex2f(11.0,2.0);    glVertex2f(13.0,-1.0);    glColor3f(0.0,0.8,0.0);    glVertex2f(14.0,1.0);  glEnd();  /* draw some filled_triangles */  glBegin(GL_TRIANGLES);    glColor3f(0.2,0.5,0.7);    glVertex2f(-10.0,-5.0);    glVertex2f(-12.3,-7.5);    glVertex2f(-8.5,-6.0);    glColor3f(0.2,0.7,0.5);    glVertex2f(-8.0,-7.0);    glVertex2f(-7.0,-4.5);    glVertex2f(-5.5,-9.0);  glEnd();  /* draw some filled_strip_triangles */  glBegin(GL_TRIANGLE_STRIP);    glVertex2f(-1.0,-8.0);    glVertex2f(-2.5,-5.0);    glColor3f(0.8,0.8,0.0);    glVertex2f(1.0,-7.0);    glColor3f(0.0,0.8,0.8);    glVertex2f(2.0,-4.0);    glColor3f(0.8,0.0,0.8);    glVertex2f(4.0,-6.0);  glEnd();  /* draw some filled_fan_triangles */  glBegin(GL_TRIANGLE_FAN);    glVertex2f(8.0,-6.0);    glVertex2f(10.0,-3.0);    glColor3f(0.8,0.2,0.5);    glVertex2f(12.5,-4.5);    glColor3f(0.2,0.5,0.8);    glVertex2f(13.0,-7.5);    glColor3f(0.8,0.5,0.2);    glVertex2f(10.5,-9.0);  glEnd();}

Point Size[Square] The back point of the reverse sample is a circle

void glPointSize(GLfloat size);

Line width

void glLineWidth(GLfloat width);

Draw line Glenable(Gl_line_stipple)

void glLineStipple(GLint factor, GLushort pattern);

Polygon Mode

Line frame mode:Glpolygonmode(Gl_front_and_back, gl_line );

void glPolygonMode(GLenum face, GLenum mode);

Polygon Removal Glenable(Gl_cull_face)

Remove the opposite:Glcullface(Gl_back );

void glCullFace(GLenum mode);

Point-drawn Polygon Glenable(Gl_polygon_stipple)

void glPolygonStipple(const GLubyte *mask);

Normal Vector

Normalization (high overhead)Glenable(Gl_normalize)

Uniform scaling NormalizationGlenable(Gl_rescale_normal)

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.