67 lines
1.4 KiB
JavaScript
67 lines
1.4 KiB
JavaScript
const renderEngine = cc.renderer.renderEngine;
|
|
const renderer = renderEngine.renderer;
|
|
let ShaderMaterial = require('ShaderMaterial');
|
|
|
|
const shader = {
|
|
name: 'Duquan',
|
|
params: [
|
|
{ name: 'u_bili', type: renderer.PARAM_FLOAT },
|
|
|
|
|
|
],
|
|
|
|
start(material,params) {
|
|
material.setParamValue('u_bili', 0);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
defines:[],
|
|
|
|
|
|
frag:
|
|
`
|
|
|
|
|
|
uniform sampler2D texture;
|
|
uniform vec4 color;
|
|
varying vec2 uv0;
|
|
|
|
varying vec2 uv1;
|
|
varying vec2 uv2;
|
|
varying vec2 uv3;
|
|
|
|
|
|
uniform float u_bili;
|
|
|
|
|
|
void main()
|
|
{
|
|
|
|
vec4 src_color = vec4(0.376,0.5098,1.0,0.4);
|
|
|
|
vec2 rpos = vec2(0.5,0.5);
|
|
float dis = distance(uv0,rpos);
|
|
float bili = dis/u_bili;
|
|
src_color.a = src_color.a*bili*bili;
|
|
float outline = 0.17721518987341772/u_bili *0.001+1.0;
|
|
if(dis<u_bili*outline){
|
|
if(dis<u_bili){
|
|
src_color.a = 0.0;
|
|
}else{
|
|
src_color.a = 0.0;
|
|
//src_color.a = src_color.a*1.5;
|
|
}
|
|
}else{
|
|
src_color.a = min(src_color.a,0.9);
|
|
}
|
|
|
|
|
|
|
|
gl_FragColor = src_color;
|
|
}`,
|
|
};
|
|
|
|
ShaderMaterial.addShader(shader); |