pubgv3/assets/scripts/shaders/UVAnimation.js
zhuguoqing ff550d5d6a init
2022-05-22 10:32:02 +08:00

55 lines
1.8 KiB
JavaScript

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);