Files
MoGoEagleEye/libraries/mapmodule/src/main/assets/shaders/fBaseTex.glsl
2023-08-07 11:21:55 +08:00

65 lines
1.5 KiB
GLSL

#version 300 es
precision highp float;
uniform vec4 u_color;
uniform sampler2D u_texture;
uniform int vr_type;
in float _type;
in float _flag;
in vec3 _pos;
in vec2 _tex;
in vec4 _clr;
out vec4 color;
void main()
{
if (_type == 1.0)
{
vec4 c = texture(u_texture, _tex);
float a = c.a > 0.8 ? 1.0 : 0.0;
color = vec4(c.rgb, a);
}
else if (_type >= 2.0 && _type < 70.0)
{
float k = 1.0; // 渐进衰减
if (_flag > 110.0)
k = 0.8;
else if (_flag > 10.0)
k = 1.0 - (_flag-10.0)/500.0;
vec4 c = texture(u_texture, _tex*_type);
float a = c.a > 0.8 ? 1.0 : 0.0;
color = vec4(c.rgb*k, a);
}
else if (_type >= 70.0 && _type < 74.0)
{
float alpha = _flag / 100.0;
float h = _clr.a / 170.0;
float hs = 8.0 * h;
float hi = floor(hs);
float f = (hs) - floor(hs);
float q = 1.0 - f;
if (hi <= 0.0)
if(vr_type == 1)
color = vec4(0.0, 0.9, 1.0, alpha);
else
color = vec4(0.15,0.99,1.0, alpha);
else if (hi <= 1.0)
if(vr_type == 1)
color = vec4(0.0, f, 0.9, alpha);
else
color = vec4(0.20,0.73,0.92, alpha);
else if (hi <= 2.0)
if(vr_type == 1)
color = vec4(0.35, 1.0, 0.8, alpha);
else
color = vec4(0.15,0.99,1.0, alpha);
else
if(vr_type == 1)
color = vec4(0.15, 0.73, 1.0, alpha);
else
color = vec4(0.15,0.99,1.0, alpha);
}
else if (u_color.r+u_color.g+u_color.b > 0.01)
color = u_color;
else
color = texture(u_texture, _tex);
}