material.glsl 944 B

12345678910111213141516171819202122232425262728
  1. //
  2. // Material properties uniform
  3. //
  4. uniform vec3 Material[6];
  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. #define MatPointSize Material[4].z
  14. #define MatPointRotationZ Material[5].x
  15. #if MAT_TEXTURES > 0
  16. // Texture unit sampler array
  17. uniform sampler2D MatTexture[MAT_TEXTURES];
  18. // Texture parameters (3*vec2 per texture)
  19. uniform mat3 MatTexinfo[MAT_TEXTURES];
  20. // Macros to access elements inside the MatTexinfo array
  21. #define MatTexOffset(a) MatTexinfo[a][0].xy
  22. #define MatTexRepeat(a) MatTexinfo[a][1].xy
  23. #define MatTexFlipY(a) bool(MatTexinfo[a][2].x)
  24. #define MatTexVisible(a) bool(MatTexinfo[a][2].y)
  25. #endif