GLSL 函数
GLSL
中的函数和 C
函数很相似,它有一个函数名、一个返回值类型,如果函数不是在 main
函数之前声明的,则必须在代码文件顶部声明一个原型。
多光源
当在场景中使用多个光源时,由于每一个光源都会对片段产生一定的影响,所以需要一个单独的颜色向量,将每个光源对片段的影响累加,以得出最终的片段颜色。大体的结构如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| out vec4 FragColor;
void main() { vec3 output; output += someFunctionToCalculateDirectionalLight(); for(int i = 0; i < nr_of_point_lights; i++) { output += someFunctionToCalculatePointLight(); } output += someFunctionToCalculateSpotLight(); FragColor = vec4(output, 1.0); }
|
效果
参考
教程来源:https://learnopengl.com/。