- 同一个uniform变量可以在vshader和fshader中同时声明,共享使用。
- uniform变量只读,尝试写入,会产生编译错误。
- fshader中的in变量不能是int,因为它是插值后的结果,只能是浮点数,int的话否则会造成编译错误。
- in/out的变量顺序可以不一致
- uniform,in,out变量可以穿插声明
- gles中in/out结构体,需要加struct
- vShader和fShader中有一个共同的uniform变量时,要保证其精度相同,否则会出现编译错误。
Error: Uniform signalLineStep precision mismatch with other stage
加入下行代码即可
precision mediump int;
out struct zebra_t{
float type;
float flag;
}zebra;
- 定义变量时不必初始化
- uniform变量不能设置默认值
- uniform float的设置值不要太大,否则会出现问题,比如传入时间,要取余数,限定在一定范围内。