小编may*_*nic的帖子

OpenGL:glDrawElements不绘制

我正在尝试Vertex Arrays的东西,但由于某种原因,glDrawElements命令不会为我绘制任何东西.我可以在中间使用glBegin/glEnd和glDrawElements绘制,但glDrawElements不起作用.这是一段代码片段:

这些数组在构造函数中设置:

double points[100];
GLint indices[50];

for (int i=0; i < 50; i++){
    points[2*i] = radius * cos(i*2*PI/50);
    points[2*i + 1] = radius * sin(i*2*PI/50);
    indices[i] = i;
}
Run Code Online (Sandbox Code Playgroud)

仅使用带有glArrayElement的points数组的工作代码:

void GLCircle::draw()
{
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(2, GL_DOUBLE, 0, points);

    glBegin(GL_POLYGON);
    for (int i=0; i < 50; i++){
        glArrayElement(i);
    }
    glEnd();
}
Run Code Online (Sandbox Code Playgroud)

还有工作代码,使用点数组,通过索引数组访问的特定索引:

void GLCircle::draw()
{
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(2, GL_DOUBLE, 0, points);

    glBegin(GL_POLYGON);
    for (int i=0; i < 50; i++){
        glArrayElement(indices[i]);
    }
    glEnd();
}
Run Code Online (Sandbox Code Playgroud)

不工作的代码,试图使用glDrawElements:

void GLCircle::draw()
{
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(2, GL_DOUBLE, 0, …
Run Code Online (Sandbox Code Playgroud)

opengl

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

opengl ×1