如何传递应该应用于所有顶点的顶点着色器动态数据?

时间:2014-10-14 00:54:53

标签: c++ opengl glsl opengl-3 vertex-shader

我是一个绘制对象的简单程序,我希望它的位置最终能够响应用户输入。

我试图创建一个只有2个GLfloats的缓冲对象来保持位置并将其传递到位置1,并且知道它只影响第一个顶点(实际上它有意义,现在我想起来了) )。
我曾经考虑过使用制服,但它似乎也不是正确的方法(我已经知道改变它们可能很慢)。

OpenGL 3/4的解决方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用制服或顶点属性来实现此目的。如果您希望顶点具有每个顶点的唯一值,我建议使用顶点属性。您只需提供顶点指针而不是常量顶点属性即可实现此目的。

以下命令将常量值应用于顶点属性的每个实例:

glVertexAttrib{1|2|3|4}f[v] (...)