49 lines
1.3 KiB
JavaScript
49 lines
1.3 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);
|
|
|
|
},
|
|
|
|
|
|
|
|
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); |