使用uniform定义一个水平偏移量,在顶点着色器中使用这个偏移量把三角形移动到屏幕右侧
1 // In your CPP file: 2 // ====================== 3 float offset = 0.5f; 4 ourShader.setFloat("xOffset", offset); 5 6 // In your vertex shader: 7 // ====================== 8 #version 330 core 9 layout (location = 0) in vec3 aPos; 10 layout (location = 1) in vec3 aColor; 11 12 out vec3 ourColor; 13 14 uniform float xOffset; 15 16 void main() 17 { 18 gl_Position = vec4(aPos.x + xOffset, aPos.y, aPos.z, 1.0); // add the xOffset to the x position of the vertex position 19 ourColor = aColor; 20 }
注意:查询uniform地址不要求你之前使用过着色器程序,但是更新一个uniform之前你必须先使用程序(调用glUseProgram),因为它是在当前激活的着色器程序中设置uniform的。
2019/11/27