glColor3f的次序对渲染的影响

原始代码如下:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟空间、营销软件、网站建设、于洪网站维护、网站推广。

#include

#include

#define WIDTH 400

#define HEIGHT 400

#include

#define ColoredVertex(c, v) do{ glColor3fv(c); glVertex3fv(v); }while(0)

GLfloat angle = 0.0f;

void myDisplay(void)

{

  glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

  glClear(GL_COLOR_BUFFER_BIT );

  glPointSize(20);

  glBegin(GL_POINTS);

//////////

  glVertex3f(0, 0, 0); 

  glColor3f(0.0f, 0.0f, 0.0f);

//////////

  glEnd();

  glFlush();

}

void myIdle(void)

{

     myDisplay();

     ::Sleep(10000);

}

int main(int argc, char* argv[])

{

     glutInit(&argc, argv);

     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

     //glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);

     glutInitWindowPosition(200, 200);

     glutInitWindowSize(WIDTH, HEIGHT);

     glutCreateWindow("OpenGL 窗口1");

     glutDisplayFunc(&myDisplay);

     glutIdleFunc(&myIdle);

     glutMainLoop();

     return 0;

}

在上面的代码中,会出现一个白色的矩形,然后到超时10秒之后消失了,但是设置的颜色都是黑色,按照道理应该只是黑色。如果调整

  glVertex3f(0, 0, 0); 

  glColor3f(0.0f, 0.0f, 0.0f);

的次序,就不会出现上面的情况,因为渲染的矩形都是黑色的,所以什么也没有除了黑色的。


分享文章:glColor3f的次序对渲染的影响
链接URL:http://scyanting.com/article/igghgg.html