我的代碼是:現代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);
?
我的代碼是:現代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);
?
我不知道天使,但你想要的是不完全可能與這段代碼。您必須手動更改vec4中的每個元素。
例如,
color.r = 1.0;
color.g = 1.0;
color.b = 1.0;
color.a = 1.0;
您仍然需要將它傳遞到相關對象緩衝區 –
,使用glbuffersubdata應該很容易:http://www.opengl.org/sdk/docs/man/xhtml/glBufferSubData.xml –
如果這是現代GL,則應該使用着色器。在這種情況下,你的着色器應該有一個統一的定義環境照明。看看['glUniform4fv(...)'](http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml)和['glGetUniformLocation(...)'](https:/ /www.opengl.org/sdk/docs/man/xhtml/glGetUniformLocation.xml)。這都是猜測,因爲你沒有包含足夠的信息來給出真實的答案。 –