2013-12-12 32 views
-5

我的代码是:现代openGL如何改变顶点值?

typedef Angel::vec4 color4; 
color4 light_ambient(0.2, 0.2, 0.2, 1.0); 

如何通过按键盘q键运行程序时的light_ambient值更改为light_ambient(1.0, 1.0, 1.0, 1.0);

+1

如果这是现代GL,则应该使用着色器。在这种情况下,你的着色器应该有一个统一的定义环境照明。看看['glUniform4fv(...)'](http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml)和['glGetUniformLocation(...)'](https:/ /www.opengl.org/sdk/docs/man/xhtml/glGetUniformLocation.xml)。这都是猜测,因为你没有包含足够的信息来给出真实的答案。 –

回答

0

我不知道天使,但你想要的是不完全可能与这段代码。您必须手动更改vec4中的每个元素。

例如,

color.r = 1.0; 
color.g = 1.0; 
color.b = 1.0; 
color.a = 1.0; 
+0

您仍然需要将它传递到相关对象缓冲区 –

+0

,使用glbuffersubdata应该很容易:http://www.opengl.org/sdk/docs/man/xhtml/glBufferSubData.xml –