opengl - 如何将 glVertexAttrib3f 与 vao 一起使用?
问题描述
我使用 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);
怎么了 ?
解决方案
请参阅OpenGL 4.6 API 核心配置文件规范 - 10.2 当前顶点属性值:
本节中的命令用于指定当前属性值。当未启用定义所需属性的顶点数组时,绘图命令使用这些值来定义为顶点传输的属性 [...]
注意,当前顶点属性值没有在顶点数组对象中说明。
必须禁用具有指定索引的顶点属性:
glBindVertexArray(VAO);
glDisableVertexAttribArray(0);
推荐阅读
- python - 使用来自八度音程的数据在 python 中进行二次规划
- python - 如何通过 gsclient 获取在远程机器上运行的脚本的输出?
- r - 如何计算R中列表中的重复元素?
- vue.js - 如何从 socket.io-client 的 url 中删除查询参数
- python - TypeError:预期的 str、字节或 os.PathLike 对象,而不是 HTTPResponse
- angular - 材料步进器 | 标题导航导致方法执行两次
- android - 将数据从 Android 设备写入 Windows 文件夹
- azure - 如何配置 AAD 安全 Web API 以授予来自 B2C 注册 Web 应用程序的访问权限
- security - VPN 如何知道客户端数据包的最终目的地?
- java - JXDatePicker swingx 语言