通过上一篇的动态移动的三角形,知道关键字in和out的用法之后,可以动态的改变三角形渲染的位置(也就是改变了动态改变顶点坐标了),咱们知道这个三角形的颜色是在片段着色器里面进行控制的,那是不是也可以动态的去控制这个颜色。
那就捋一捋,通过OpenGL管线咱们知道,数据会先进入顶点着色器,最后才到片段着色器中,那么,要能动态改变片段着色器中的颜色,这个数据还是得先能进入顶点着色器中,通过in和out关键字,就可以在顶点着色器中写出如下代码
#version 450 core
layout(location = 0) in vec4 offset;
layout(location = 1) in vec4 color;
out vec4 vs_color;
void main(void) {
vs_color = color;
}
第四行用in关键字声明了color,用于接收输入的color,在第六行使用out声明的vs_color作为输出,输出到后续管线之中。想想咱们在编写第一个片段着色器的时候,是不是也使用了out声明了一个color<