Basic.glsl 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. float alphaInput = texture2D(sDiffMap, vTexCoord).a;
  41. gl_FragColor = vec4(diffColor.rgb, diffColor.a * alphaInput);
  42. #endif
  43. }