顶点属性 Vertex Attribute
顶点着色器 VertexShader的输入变量叫做 顶点属性
 
数据类型
基础数据类型 int float double uint bool
容器类型 Vector(向量) Matrix(矩阵)
 
向量
一个包含4个分量的容器 x y z w,分量类型可以是基础类型
表示向量的分量类型定义方式
n=分量的数量
类型
含义
vecn
包含 n 个float分量的默认向量
bvecn
包含 n 个bool分量的向量
ivecn
包含 n 个int分量的向量
uvecn
包含 n 个unsigned int分量的向量
dvecn
包含 n 个double分量的向量
向量重组 Swizzling 以一种灵活的方式来可以随意组合出新的向量值 必须同类型
vec2 someVec;
vec4 differentVec = sommVec.xyxx;
vec3 anotherVec = differentVec.zyw
 
vec2 vect = vec2(0.5,0.5);
vec4 result = vec4(vect,0.0,0.0);
vec4 otherResult = vec4(result.xyz,1.0);
 
输入和输出
in  out 两个关键字,让着色器程序之间链接起来,顶点着色器定义接收 顶点数据和UV数据的int 数据类型 ,片段着色器接收 顶点着色器out 类型的数据
 
 
Uniform
一个可以从CPU程序中传递给GPU代码的 变量的标识符,他是个全局变量,定义后就可以用C++代码给这个值传数据,如果片段着色器想获取这个数据,不需要从顶点着色器传递。如果定义了, 但是 shader代码里没有使用过,编译后会清理掉这个变量导致程序错误 这个要注意
glGetUniformLocation 2个参数 shader着色器 属性名字 返回一个属性的ID
glUniform4f 通过属性ID 设置参数数值 
OpenGL学习————着色器 shader
 
片段插值 Fragment Interpolation 2个顶点之间和2个顶点之间的颜色插值,每个像素就算一个片段,但是只提供了2个像素颜色,所以中间像素需要获取到俩只的插值Interpolation
 
 
我们自己的着色器类
写一个编译shader文件的类 shader代码写到单独文件内
可以装个VS的插件  OpenGL学习————着色器 shader
shader文件后缀写.glsl 方便编写

相关文章: