fragmentShaderText top-level property
String
fragmentShaderText
getter/setter pair
Implementation
String fragmentShaderText = """
precision highp float;
uniform sampler2D u_tex;
uniform vec3 u_col1;
uniform vec3 u_col2;
uniform vec3 u_col3;
uniform vec3 u_col4;
varying vec2 v_tex;
varying float v_dist;
void main() {
vec4 col = texture2D(u_tex, v_tex);
vec3 col1 = vec3(0.0, 0.0, 0.0);
vec3 col2 = vec3(81.0/255.0, 81.0/255.0, 81.0/255.0);
vec3 col3 = vec3(173.0/255.0, 173.0/255.0, 173.0/255.0);
vec3 col4 = vec3(255.0/255.0, 255.0/255.0, 255.0/255.0);
if(u_col1.r != -1.0) {
if(col1.r != -1.0 || col.g != -1.0 || col.b != -1.0) {
if(col.rgb == col1) {
col.rgb = u_col1;
} else if(col.rgb == col2) {
col.rgb = u_col2;
} else if(col.rgb == col3) {
col.rgb = u_col3;
} else if(col.rgb == col4) {
col.rgb = u_col4;
} else {
discard;
}
}
}
vec4 processedCol = col;
if(processedCol.a > 0.0) {
float fog = 1.0 - v_dist;
fog = fog*fog*fog;
gl_FragColor = vec4(processedCol.xyz * fog+vec3(0.2, 0.2, 0.2) * (1.0 -fog), 1.0);
} else {
discard;
}
}
""";