2013-12-12 35 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 –