const renderEngine = cc.renderer.renderEngine; const renderer = renderEngine.renderer; let ShaderMaterial = require('ShaderMaterial'); const shader = { name: 'uvanimation', params: [ { name: 'time', type: renderer.PARAM_FLOAT }, // { name: 'dtime', type: renderer.PARAM_FLOAT }, // { name: 'offset', type: renderer.PARAM_FLOAT }, // { name: 'linewidth', type: renderer.PARAM_FLOAT }, // { name: 'linecolor', type: renderer.PARAM_FLOAT3 }, // { name: 'ymode', type: renderer.PARAM_INT }, ], start(material,params) { material.setParamValue('time', 0); // material.cusparmas = {} // material.cusparmas._start = 0; // material.setParamValue('offset', params.offset||0);//偏移值 (调整该值改变流光的倾斜程度) // material.setParamValue('linewidth', params.linewidth||0.2);//流光的宽度范围 (调整该值改变流光的宽度) // material.setParamValue('linecolor', cc.v3(params.linecolor.r,params.linecolor.g,params.linecolor.b)); // material.setParamValue('dtime', params.dtime||1.414); // material.setParamValue('ymode', params.ymode||0); }, defines:[], // vert: ` // uniform mat4 viewProj; // attribute vec3 a_position; // attribute vec2 a_uv0; // varying vec2 uv0; // void main () { // vec4 pos = viewProj * vec4(a_position, 1); // gl_Position = pos; // uv0 = a_uv0; // }`, frag: `uniform sampler2D texture; uniform vec4 color; uniform float time; varying vec2 uv0; void main() { vec2 offset = vec2(0, time); gl_FragColor = texture2D(texture, uv0 + offset); }`, }; ShaderMaterial.addShader(shader);