Opengl统一变量-TheCherno学习笔记
uniform:全局变量.传输CPU 数据到GPU
#version 330 core
layout(location = 0) out vec4 color;
//注意命名 u_
uniform vec4 u_Color;
void main()
{
color = u_Color;
};
//传递数据
GLCall(int location = glGetUniformLocation(shader, "u_Color"));
ASSERT(location != -1)
GLCall(glUniform4f(location, 0.2f, 0.3f, 0.8f, 1.0f));
//more fun
GLCall(int location = glGetUniformLocation(shader, "u_Color"));
ASSERT(location != -1)
GLCall(glUniform4f(location, 0.2f, 0.3f, 0.8f, 1.0f));
float r = 0.0f;
float increment = 0.05f;
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
GLCall(glUniform4f(location, r, 0.3f, 0.8f, 1.0f));
GLCall(glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr));
if (r > 1.0f)
increment = -0.05f;
else if (r < 0.0f)
increment = 0.05f;
r += increment;
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
//让颜色改变慢点
glfwSwapInterval(5);
浙公网安备 33010602011771号