Basic.glsl 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "Uniforms.glsl"
  2. #include "Samplers.glsl"
  3. #include "Transform.glsl"
  4. #if defined(DIFFMAP) || defined(ALPHAMAP)
  5. varying vec2 vTexCoord;
  6. #endif
  7. #ifdef VERTEXCOLOR
  8. varying vec4 vColor;
  9. #endif
  10. void VS()
  11. {
  12. mat4 modelMatrix = iModelMatrix;
  13. vec3 worldPos = GetWorldPos(modelMatrix);
  14. gl_Position = GetClipPos(worldPos);
  15. #ifdef DIFFMAP
  16. vTexCoord = iTexCoord;
  17. #endif
  18. #ifdef VERTEXCOLOR
  19. vColor = iColor;
  20. #endif
  21. }
  22. void PS()
  23. {
  24. vec4 diffColor = cMatDiffColor;
  25. #ifdef VERTEXCOLOR
  26. diffColor *= vColor;
  27. #endif
  28. #if (!defined(DIFFMAP)) && (!defined(ALPHAMAP))
  29. gl_FragColor = diffColor;
  30. #endif
  31. #ifdef DIFFMAP
  32. vec4 diffInput = texture2D(sDiffMap, vTexCoord);
  33. #ifdef ALPHAMASK
  34. if (diffInput.a < 0.5)
  35. discard;
  36. #endif
  37. gl_FragColor = diffColor * diffInput;
  38. #endif
  39. #ifdef ALPHAMAP
  40. #ifdef GL3
  41. float alphaInput = texture2D(sDiffMap, vTexCoord).r;
  42. #else
  43. float alphaInput = texture2D(sDiffMap, vTexCoord).a;
  44. #endif
  45. gl_FragColor = vec4(diffColor.rgb, diffColor.a * alphaInput);
  46. #endif
  47. }