1、基本着色器的架构
顶点着色器:接收客户端输入的Attribute属性数据,有些计算后自己用于顶点变换,有些传给片段着色器。除此之外,顶点着色器还接受uniform数据,一般是变换矩阵。最后输出顶点的位置变换值。
数据类型:整数(有符号和无符号),浮点数和布尔值。。没有指针和字符类型
复合数据类型:向量类型(vec3,ivec3...)和矩阵类型(max4,mac2x3...)
1、向量类型的特点:
a、向量类型的特殊寻址:我们用点号来确定多达4个向量元素的地址,可以使用下列三组标识符的任何一组:xyzw,rgba,stpq
b、调换操作:vNewColor.bgra = vOldColor.rgba
2、矩阵类型的特点:
a、矩阵其实就是一个由向量组成的数组。矩阵可以乘以向量得到一个新的向量:顶点的空间变换-> vOutPos = mvpMatrix * vVertex
3、Shader的存储限定符:in,out,inout,uniform,flat,smooth
in(输入变量):接收来自客户端提交的属性或者以前的着色器阶段传递的属性
out(输出变量):前一阶段的out变量在后续阶段的着色器能够接收到的变量
inout:由于Shader没有指针,所以这是将一个值传到一个函数并且运行这个函数修改并返回一个变量的唯一方法
flat:在两个着色器阶段之间不以一种透视正确的方法进行插值
smo
顶点着色器:接收客户端输入的Attribute属性数据,有些计算后自己用于顶点变换,有些传给片段着色器。除此之外,顶点着色器还接受uniform数据,一般是变换矩阵。最后输出顶点的位置变换值。
片段着色器:接收来自顶点着色器输出的纹理坐标和纹理等属性,另外也接收用于计算光照的光照颜色的uniform值,最后输出像素的颜色值。
数据类型:整数(有符号和无符号),浮点数和布尔值。。没有指针和字符类型
复合数据类型:向量类型(vec3,ivec3...)和矩阵类型(max4,mac2x3...)
1、向量类型的特点:
a、向量类型的特殊寻址:我们用点号来确定多达4个向量元素的地址,可以使用下列三组标识符的任何一组:xyzw,rgba,stpq
b、调换操作:vNewColor.bgra = vOldColor.rgba
2、矩阵类型的特点:
a、矩阵其实就是一个由向量组成的数组。矩阵可以乘以向量得到一个新的向量:顶点的空间变换-> vOutPos = mvpMatrix * vVertex
3、Shader的存储限定符:in,out,inout,uniform,flat,smooth
in(输入变量):接收来自客户端提交的属性或者以前的着色器阶段传递的属性
out(输出变量):前一阶段的out变量在后续阶段的着色器能够接收到的变量
inout:由于Shader没有指针,所以这是将一个值传到一个函数并且运行这个函数修改并返回一个变量的唯一方法
flat:在两个着色器阶段之间不以一种透视正确的方法进行插值
smo