yue_pan_pan 2023-02-21 17:09 采纳率: 45.5%
浏览 63
已结题

OpenGl或者Opengles如何在运行过程中添加新的VAO和VBO

OpenGl或者Opengles如何在运行过程中添加新的VAO和VBO,不要引入chatGPT的答案,谢谢。

  • 写回答

7条回答 默认 最新

  • __AtYou__ 2023-02-21 21:04
    关注
    
    GLuint vao, vbo;
    float vertices[] = { /* 顶点数据 */ };
    
    // 1. 创建新的VAO对象和VBO对象
    glGenVertexArrays(1, &vao);
    glGenBuffers(1, &vbo);
    
    // 2. 绑定新的VAO对象和VBO对象
    glBindVertexArray(vao);
    glBindBuffer(GL_ARRAY_BUFFER, vbo);
    
    // 3. 将顶点数据复制到新的VBO对象中
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
    
    // 4. 指定新的VAO对象的顶点属性指针
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
    
    // 5. 启用新的VAO对象的顶点属性
    glEnableVertexAttribArray(0);
    
    // 清理
    glBindBuffer(GL_ARRAY_BUFFER, 0);
    glBindVertexArray(0);
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月25日
  • 修改了问题 2月21日
  • 创建了问题 2月21日