在弄cocos记录的笔记,虽然和unity有点区别,但核心思想还是一样
fsh
fsh是片段shader。在这里对于每一个像素点进行重新计算。
varying highp vec2 textureCoordinate就是从vsh中传过来了纹理坐标
uniform sample2D videoFrame是我们真正的纹理贴图
texture2D(videoFrame,textureCoordinate)
将纹理中的每个像素取出
然后就可以重新加工
gl_fragcolor是内置的系统变量,定义最终画在屏幕上的像素点的颜色
vsh
vsh是vertex shader ,用于顶点计算,可以理解控制定点的位置,在这个文件中我们通常会传入顶点的位置,和纹理的坐标。
每个shader都有一个main函数。
这里面有两种类型的变量,
一种是attribute,另一种是varying
attribute是从外部传进来的,每一个顶点都会有这两个属性,所以他也叫作vertex attribute顶点属性。
varying类型的变量是在vertex shader和fragment shader之间传递数据。
gl_开头的变量名是系统内置的变量。
precision mediump float定义中等精读的浮点数
uniform外部传入vsh文件的变量 变化率较低 对于可能在整个渲染没有改变 只是个常亮
在main中当overturn大于0的时候,函数里就是将纹理y反转
vertex shader是作用于每一个顶点的。如果有3个定点,那么vertex shader会被执行三次