资料来自网络收集
着色器
着色器(shader)应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务时使用的指令.程序员将着色器应用于图形处理(GPU)的可编程流水线,来实现三维应用程序.这样的图形处理器有别于传统的固定流水线处理器,为GPU编程带来更高的灵活性和适应性.
opengl es的着色器有.vsh和.fsh两个文件.这两文件在被编译和链接后就可以产生可执行程序与GPU交互.
有人总结:
.vsh 负责搞定像素位置,填写gl_Position变量,偶尔搞定一下点大小的问题,填写gl_PixelSize.
.fsh 负责搞定像素外观,填写gl_FragColor,偶尔配套填写另外一组变量.
这两文件都是一个像素运行一次的,也可能运行多次.为了"这一像素"而努力计算.下面是简单的示范:
.vsh文件
attribute vec4 a_position; //attribute : 外部传入vsh文件的变量,每帧渲染的可变参数
attribute vec4 a_color;
attribute vec2 a_texCoord;
#ifdef GL_ES
varying lowp vec4 v_fragmentColor; //varying : 用于vsh和fsh之间相互传递的参数
varying mediump vec2 v_texCoord;
#else
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
#endif
void main()
{
gl_Position = CC_PMatrix * a_position;
v_fragmentColor = a_color;
v_texCoord = a_texCoord;
}
.fsh文件