material.glsl 916 B

123456789101112131415161718192021222324252627
  1. //
  2. // Material properties uniform
  3. //
  4. uniform vec3 Material[5];
  5. // Macros to access elements inside the MatTexinfo array
  6. // Each texture uses 3 vec2 elements.
  7. #define MatAmbientColor Material[0]
  8. #define MatDiffuseColor Material[1]
  9. #define MatEmissiveColor Material[2]
  10. #define MatSpecularColor Material[3]
  11. #define MatShininess Material[4].x
  12. #define MatOpacity Material[4].y
  13. #if MAT_TEXTURES > 0
  14. // Texture unit sampler array
  15. uniform sampler2D MatTexture[MAT_TEXTURES];
  16. // Texture parameters (3*vec2 per texture)
  17. uniform vec2 MatTexinfo[3*MAT_TEXTURES];
  18. // Macros to access elements inside the MatTexinfo array
  19. // Each texture uses 3 vec2 elements.
  20. #define MatTexOffset(a) MatTexinfo[(3*a)]
  21. #define MatTexRepeat(a) MatTexinfo[(3*a)+1]
  22. #define MatTexFlipY(a) bool(MatTexinfo[(3*a)+2].x)
  23. #define MatTexVisible(a) bool(MatTexinfo[(3*a)+2].y)
  24. #endif