绘制一个数组

时间:2014-01-02 06:32:19

标签: opengl

我试图用ar []绘制一行。它包含点线。我也试图使用clr []中描述的颜色。任何人都可以告诉我我的ver函数有什么问题。当我运行它时,只出现一个白色屏幕。

 void ver(void)
{

glClear(GL_DEPTH_BUFFER_BIT);

glPushMatrix();


GLfloat ar [] = {0.25, 0.25,
                 0.5, 0.25,

                            };      
GLfloat clr [] = {1.0, 0.0,0.0

};



glEnableClientState(GL_COLOR_ARRAY);                        
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2,GL_FLOAT, 0, ar);
glColorPointer(3,GL_FLOAT,0,clr);
glDrawElements(GL_LINES, 2, GL_FLOAT, ar);
glDrawElements(GL_LINES, 3, GL_FLOAT, clr);
    glPopMatrix();
glutSwapBuffers();
}

1 个答案:

答案 0 :(得分:1)

您对glDrawElements()的来电是错误的。你需要传递一个索引数组,你只需要调用一次。所以你需要这样的东西:

GLuint indices[] = { 0, 1, 2, 3 };
glDrawElements (GL_LINES, 2, GL_UNSIGNED_INT, indices);

另外,我认为你需要扩展你的颜色数组,使每个顶点有一种颜色,所以看起来应该更像:

GLfloat clr [] = { 1.0, 0.0, 0.0,
                   1.0, 0.0, 0.0 };