【问题标题】:How to use glVertexAttrib3f with vao?如何将 glVertexAttrib3f 与 vao 一起使用?
【发布时间】:2020-12-21 08:42:00
【问题描述】:

我使用 vao 和 vbo 来绘制一个四边形。顶点着色器具有以下输入:

layout (location = 0) in vec3 pos

我想使用 glVertexAttrib3f 为顶点着色器设置一个常量 pos 值。以下代码无效(四边形正在绘制):

glVertexAttrib3f(0, 0.0f, 0.0f, 0.0f);
glUseProgram(shaderProgram);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);

怎么了?

【问题讨论】:

  • 必须在glVertexAttrib3f之前绑定VAO (glBindVertexArray(VAO);)
  • 它也不起作用。

标签: opengl vao


【解决方案1】:

OpenGL 4.6 API Core Profile Specification - 10.2 Current Vertex Attribute Values:

本节中的命令用于指定当前属性值。这些 绘图命令使用值来定义为 未启用定义所需属性的顶点数组时的顶点 [...]

注意,当前顶点属性值并没有在顶点数组对象中说明。

必须禁用具有指定索引的顶点属性:

glBindVertexArray(VAO);
glDisableVertexAttribArray(0);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2014-09-25
    • 2016-01-30
    相关资源
    最近更新 更多