着色器(Shader)是运行在GPU上的小程序。
着色器语言GLSL,类C语言。
#version version_number //版本号-如330
in type in_variable_name; //绘入shader的变数
in type in_variable_name;
out type out_variable_name; //输出shader的型号
uniform type uniform_name; //随时间改变颜色,因为CPU知道时间,GPU不知道。uniform可以】直接从CPU导入GPU
int main()
{
//处理输入并进行一些图形操作
…
//输出处理的结果到输出变量
out_variable_name = weird_stuff_we_processed;
}
如:
const char *vertexShaderSource =
“#version 330 core n”
“layout(location = 6) in vec3 aPos; n”
“out vec4 vertexColor;”
“void main(){n ”
“ gl_Position = vec(aPos.x,aPos.y,aPos.z,1.0);n
“vertexColor = vec4(1.0,0,0,1.0); n”
“} n”;
const char *fragmentShaderSource =
“#version 330 core n”
“in vec4 vertexColor; n”
“out vec4 FragColor; n”
“void main(){n”
“ FragColor = vec4(1.0f,0.5f,0.2f,1.0f);} n”;



