每天一点点_音视频_OpenGL_着色器管道

着色器语言(GLSL, GL shader language)

它是一种类 C 的语言,编译后运行在 GPU 上的每个单元上

着色器是一段 GLSL 代码, 有输入有输出, 多个着色器的输出和输入相连,就形成了着色器管线。

我们一般都会写两个着色器: 顶点着色器 和 片着色器

顶点着色器的输入是之前提到过的上传到 GPU 的定点数据里的一个点的坐标,顶点着色器就是负责将这些坐标进行变换的。

片着色器的, 输出则是那个顶点坐标对应的颜色

以上两者是固定的,另外 GLSL 提供了让我们自定义变量来串起着色器的功能,方法就是在两个着色器里定义类型和名称相同的变量。在前一个着色器作为输出在后一个作为输入。

另外还有一种方式,定义 uniform 的变量,它相对于是全局变量,在所有着色器里都可见,在应用里向它传值时,所有着色器都可以得到这个值。

每天一点点_音视频_OpenGL_光照