(opengl)为什么我可以使用glVertex3f但不能使用glDrawElements?

时间:2013-11-25 21:22:42

标签: opengl graphics vertex

如果我这样做,假设其他一切都有用:

glcolor3f(1.f,1.f,1.f);
glBegin(GL_POLYGON);
glVertex3f(100.0, 100.0, 0.0);
glVertex3f(100.0, 600.0, 0.0);
glVertex3f(600.0, 600.0, 0.0);
glVertex3f(600.0, 100.0, 0.0);
glEnd();

我可以安全地画画,但是如果我通过这个没有出现:

glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
GLfloat vertici[] =
{
    100.0, 100.0, 0.0,
    100.0, 600.0, 0.0,
    600.0, 600.0, 0.0,
    600.0, 100.0, 0.0
};

GLfloat colori[] =
{
    0.0, 1.0, 0.0,
    1.0, 0.0, 0.0,
    0.0, 0.0, 1.0,
    1.0, 1.0, 0.0

};

GLfloat normali[] =
{
    0.0, 0.0, 1.0,
    0.0, 0.0, 1.0,
    0.0, 0.0, 1.0,
    0.0, 0.0, 1.0

};

GLbyte indici[] =
{
    0, 1, 2, 3
};

glVertexPointer(3, GL_FLOAT, 0, vertici);//dichiarativa
glColorPointer(3, GL_FLOAT, 0, colori);
glNormalPointer(GL_FLOAT, 0, normali);
glDrawElements(GL_POLYGON, 4, GL_UNSIGNED_BYTE, indici);//disegnante

glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

怎么了?我需要激活什么?我忘记了什么?我犯了错误? 我使用SDL,过剩,glew。

0 个答案:

没有答案