chunkMaterial.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2016 The G3N Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package shader
  5. func init() {
  6. AddChunk("material", chunkMaterial)
  7. }
  8. const chunkMaterial = `
  9. // Material uniforms
  10. uniform vec3 Material[6];
  11. // Macros to access elements inside the Material uniform array
  12. #define MatAmbientColor Material[0]
  13. #define MatDiffuseColor Material[1]
  14. #define MatSpecularColor Material[2]
  15. #define MatEmissiveColor Material[3]
  16. #define MatShininess Material[4].x
  17. #define MatOpacity Material[4].y
  18. #define MatPointSize Material[4].z
  19. #define MatPointRotationZ Material[5].x
  20. {{if .MatTexturesMax}}
  21. // Textures uniforms
  22. uniform sampler2D MatTexture[{{.MatTexturesMax}}];
  23. uniform mat3 MatTexinfo[{{.MatTexturesMax}}];
  24. // Macros to access elements inside MatTexinfo uniform
  25. #define MatTexOffset(a) MatTexinfo[a][0].xy
  26. #define MatTexRepeat(a) MatTexinfo[a][1].xy
  27. #define MatTexFlipY(a) bool(MatTexinfo[a][2].x)
  28. #define MatTexVisible(a) bool(MatTexinfo[a][2].y)
  29. {{ end }}
  30. `