[RELEASE] u22-v03
This version is submitted to U22 breau.
This commit is contained in:
53
core/loshader/bullet.fshader
Normal file
53
core/loshader/bullet.fshader
Normal file
@@ -0,0 +1,53 @@
|
||||
in vec2 v_aa;
|
||||
in float v_bullet_id;
|
||||
in vec2 v_uv;
|
||||
in vec2 v_size;
|
||||
in float v_time;
|
||||
in vec4 v_color;
|
||||
|
||||
out vec4 o_color;
|
||||
|
||||
float dot(in vec2 p, in vec2 q) {
|
||||
return p.x*q.y - p.y*q.x;
|
||||
}
|
||||
|
||||
vec4 light(void) {
|
||||
vec4 color = v_color;
|
||||
color.a *= 1.-pow(length(v_uv), 1.5);
|
||||
return color;
|
||||
}
|
||||
|
||||
vec4 square(void) {
|
||||
vec4 color = v_color;
|
||||
|
||||
float t = 1.-v_time;
|
||||
|
||||
vec2 uv = abs(v_uv);
|
||||
color.a *= max(step(t-v_aa.x, uv.x), step(t-v_aa.y, uv.y));
|
||||
return color;
|
||||
}
|
||||
|
||||
vec4 triangle(void) {
|
||||
const vec2 disp = vec2(-1./12., 0.);
|
||||
|
||||
float t = 1. - v_time;
|
||||
vec2 v1 = vec2( 1., 0.)*t + disp*v_time;
|
||||
vec2 v2 = vec2(-1., -1.)*t + disp*v_time;
|
||||
vec2 v3 = vec2(-1., 1.)*t + disp*v_time;
|
||||
|
||||
float b1 = dot(v_uv-v2, v1-v2);
|
||||
float b2 = dot(v_uv-v3, v2-v3);
|
||||
float b3 = dot(v_uv-v1, v3-v1);
|
||||
|
||||
vec4 color = v_color;
|
||||
color.a *= b1*b2 > 0. && b2*b3 > 0.? 0.: 1.;
|
||||
return color;
|
||||
}
|
||||
|
||||
void main(void) {
|
||||
o_color =
|
||||
v_bullet_id == 0.? light():
|
||||
v_bullet_id == 1.? square():
|
||||
v_bullet_id == 2.? triangle():
|
||||
vec4(0.);
|
||||
}
|
Reference in New Issue
Block a user