cocoscreator shader教程
先看个简单的代码
%% vs { precision highp float; uniform mat4 cc_matViewProj; attribute vec3 a_position; attribute vec2 a_uv0; varying vec2 uv0; void main () { vec4 pos = cc_matViewProj * vec4(a_position, 1); gl_Position = pos; uv0 = a_uv0; } } %% fs { precision highp float; uniform sampler2D texture; uniform vec4 color; varying vec2 uv0; void main () { vec4 c = color * texture2D(texture, uv0); float clrbright = (c.r + c.g + c.b) * (1. / 3.); float gray = (0.6) * clrbright; gl_FragColor = vec4(c); } }
attribute 的变量名字不能该 都是绑定shader的 从底部传过来的
vec4 pos = cc_matViewProj * vec4(a_position, 1); gl_Position = pos;
这句话的意思就是 设置顶点着色器
vec4 c = color * texture2D(texture, uv0);
这个c就是获取图片中每个像素的颜色
gl_FragColor = vec4(c);
最后赋值颜色 rbga 你懂的
最后讲个深入点的
vec4 c = color * texture2D(texture, uv0); if(uv0.y>0.5){ gl_FragColor = vec4(c); }else{ gl_FragColor = vec4(0.3,0.3,0.3,1); }
可以发现上半是灰色的 因为uv控制了
总而言之 就是设置颜色。。gl_FragColor 虽然他是并行计算的 你可以按照串行理解
如果遇到什么不懂的地方直接关注公众号留言(本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。)
作者:newmiracle
出处:https://www.cnblogs.com/newmiracle/