openglES3.0中shader注意事项

  • 同一个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的设置值不要太大,否则会出现问题,比如传入时间,要取余数,限定在一定范围内。

你可能感兴趣的:(图形渲染,opengl,shader)