Opengl GLD元素导致访问冲突

Opengl GLD元素导致访问冲突,opengl,rendering,Opengl,Rendering,我收到好几封信 我不知道如何看待它们 GL_无效_枚举 GL_无效_枚举 GL_无效的_操作 GL_无效的_操作 我如何调试这个 glew已预先初始化 加载的vertexData看起来正常 在调用绘制之前绑定着色器 着色器是从教程中复制的,工作正常 以前 着色器编译和链接不会产生错误 这是我的代码: void MeshPNU::create(aiMesh* m) { for (std::uint32_t i = 0; i < m->mNumVertices; i++)

我收到好几封信 我不知道如何看待它们

  • GL_无效_枚举
  • GL_无效_枚举
  • GL_无效的_操作
  • GL_无效的_操作
  • 我如何调试这个

    • glew已预先初始化
    • 加载的vertexData看起来正常
    • 在调用绘制之前绑定着色器
    • 着色器是从教程中复制的,工作正常 以前
    • 着色器编译和链接不会产生错误
    这是我的代码:

        void MeshPNU::create(aiMesh* m) {
    
    for (std::uint32_t i = 0; i < m->mNumVertices; i++) {
        vertexPNU v(m, i);
        vertices.push_back(v);
    }
    for (std::uint32_t i = 0; i < m->mNumFaces; i++) {
        for (std::uint32_t j = 0; j < m->mFaces[i].mNumIndices; j++) {
            indices.push_back(m->mFaces[i].mIndices[j]);
        }
    }
    glGenVertexArrays(1, &VAO);
    glBindVertexArray(VAO);
    glGenBuffers(1, &VBO);
    glGenBuffers(1, &IBO);
    
    glBindBuffer(GL_VERTEX_ARRAY, VBO);
    glBufferData(GL_VERTEX_ARRAY, vertices.size() * sizeof(vertexPNU), vertices.data(), GL_STATIC_DRAW);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(std::uint32_t), indices.data(), GL_STATIC_DRAW);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);
    glEnableVertexAttribArray(0);
    glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float)));
    glEnableVertexAttribArray(1);
    glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float))); 
    glEnableVertexAttribArray(2);
    }
    

    glBindBuffer(GL_顶点数组,VBO)不是VBO的正确枚举,您应该改用
    GL\u ARRAY\u BUFFER


    如果它解决了您的问题,请告诉我。

    是的,谢谢!!
    void MeshPNU::draw() 
    {
        glBindVertexArray(VAO);
        glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0);
    }