顶点着色器与片元着色器通信

通常我们在顶点着色器中声明一个attribute变量a_Color用以接受颜色,然后再用varying(只能是float以及vec2,vec3,vec4,mat2,mat3和mat4)声明变量v_Color,该变量负责将颜色值传给着色器,

1
2
attribute vec4 a_Color;
varying vec4 v_Color;

那么片元着色器如何接收到这个变量呢,很简单,同样声明一个

1
varying vec4 v_Color;

这是因为在WebGL中,如果顶点着色器和片元着色器同时有类型和命名相同的varying变量,那么顶点着色器会自动地将该变量的值传入片元着色器。
varying变量传递