No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

74 líneas
1.6 KiB

  1. #ifdef OPENGL_ES
  2. #ifdef GL_FRAGMENT_PRECISION_HIGH
  3. precision highp float;
  4. #else
  5. precision mediump float;
  6. #endif
  7. #endif
  8. ///////////////////////////////////////////////////////////
  9. // Uniforms
  10. uniform sampler2D u_texture;
  11. ///////////////////////////////////////////////////////////
  12. // Varyings
  13. varying vec2 v_texCoord;
  14. varying vec4 v_color;
  15. // alphareject
  16. #if defined(TEXTURE_DISCARD_ALPHA)
  17. uniform float u_alphaReject;
  18. #endif
  19. #if defined(MODULATE_COLOR)
  20. uniform vec3 u_modulateColor;
  21. #endif
  22. #if defined(ADDITIVE_COLOR)
  23. uniform vec3 u_additiveColor;
  24. #endif
  25. #if defined(BLEND_COLOR)
  26. uniform vec4 u_blendColor;
  27. #endif
  28. #if defined(MODULATE_ALPHA)
  29. uniform float u_modulateAlpha;
  30. #endif
  31. uniform vec4 u_fogcolor;
  32. uniform vec4 u_fogparam; // .x, .y, .z, .w stand for fog density, fog start, fog end, fog type. fog type 0, no fog, fog type 1 linear fog, fog type 2 exp fog, fog type 3 exp2 fog
  33. varying float v_fogFactor; //fog factor
  34. void main()
  35. {
  36. gl_FragColor = v_color * texture2D(u_texture, v_texCoord);
  37. #if defined(TEXTURE_DISCARD_ALPHA)
  38. if (gl_FragColor.a < u_alphaReject)
  39. discard;
  40. #endif
  41. #if defined(MODULATE_COLOR)
  42. gl_FragColor.rgb *= u_modulateColor;
  43. #endif
  44. #if defined(ADDITIVE_COLOR)
  45. gl_FragColor.rgb += u_additiveColor;
  46. #endif
  47. #if defined(BLEND_COLOR)
  48. gl_FragColor.rgb = mix(gl_FragColor.rgb , u_blendColor.rgb , u_blendColor.a);
  49. #endif
  50. #if defined(MODULATE_ALPHA)
  51. gl_FragColor.a *= u_modulateAlpha;
  52. #endif
  53. #if defined(FOG)
  54. gl_FragColor.rgb = mix(u_fogcolor.rgb, gl_FragColor.rgb, v_fogFactor);
  55. #endif
  56. }