OpenGL-片段着色器

片段着色器(Fragment Shader)

片段着色器的主要目的是计算每个像素应该输出什么颜色,在片段着色器中可以接收到顶点着色器输出的变量。

1
2
3
4
5
6
7
8
9
10
11
12
13
#version 330 core
out vec4 FragColor;

in vec3 ourColor;
in vec2 TexCoord;

// texture sampler
uniform sampler2D texture1;

void main()
{
FragColor = texture(texture1, TexCoord);
}

片段着色器可以输出指定的颜色,也可以通过采样器从纹理中进行采样。通过接收顶点着色器输出的纹理坐标(此处接收的是片段差值的坐标),使用采样器sampler2D进行纹理的采样,将采样的颜色作为输出。

1
- texture(sampler,coord): 内建函数,从纹理贴图中读取,sampler是绑定到纹理单元的采样器,制定纹理为读取来源。coord是从纹理贴图中读取的2d纹理坐标。该函数返回一个代表从纹理贴图中读取颜色的vec4,默认格式为RGBA。