【问题标题】:Do I need to call glEnableVertexAttribArray if I use VAOs?如果我使用 VAO,是否需要调用 glEnableVertexAttribArray?
【发布时间】:2017-10-03 22:40:13
【问题描述】:

我知道 VAO 可以存储与 VBO 的绑定和索引 VBO(GL_ARRAY_BUFFERGL_ELEMENT_ARRAY_BUFFER),但现在我有一个问题:

void render()
{
    ..Set up textures, uniforms..

    glBindVertexArray(vaoId)); // This also binds VBOs and indices VBOs 
    automatically (if it was properly set up)

    glEnableVertexAttribArray(0); // Do I need this?
    glEnableVertexAttribArray(1); // Do I need this?
    glEnableVertexAttribArray(2); // Do I need this?

    glDrawElements(GL_TRIANGLES, indices_N, GL_UNSIGNED_BYTE, 0);

    .. cleanup..
}

即使我已经正确设置了 VAO,我还需要致电 glEnableVertexAttribArray 吗?

【问题讨论】:

标签: c++ opengl graphics vbo vao


【解决方案1】:

这不是必需的。您应该已经在 VAO 设置期间调用了glEnableVertexAttribArray,以便在绑定 VAO 时自动启用它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2011-12-29
    • 2018-12-27
    • 1970-01-01
    相关资源
    最近更新 更多