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;
  }
}
""";