chunkLights.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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("lights", chunkLights)
  7. }
  8. const chunkLights = `
  9. {{if .AmbientLightsMax}}
  10. // Ambient lights uniforms
  11. uniform vec3 AmbientLightColor[{{.AmbientLightsMax}}];
  12. {{end}}
  13. {{if .DirLightsMax}}
  14. // Directional lights uniforms
  15. uniform vec3 DirLightColor[{{.DirLightsMax}}];
  16. uniform vec3 DirLightPosition[{{.DirLightsMax}}];
  17. {{end}}
  18. {{if .PointLightsMax}}
  19. // Point lights uniforms
  20. uniform vec3 PointLightColor[{{.PointLightsMax}}];
  21. uniform vec3 PointLightPosition[{{.PointLightsMax}}];
  22. uniform float PointLightLinearDecay[{{.PointLightsMax}}];
  23. uniform float PointLightQuadraticDecay[{{.PointLightsMax}}];
  24. {{end}}
  25. {{if .SpotLightsMax}}
  26. // Spot lights uniforms
  27. uniform vec3 SpotLightColor[{{.SpotLightsMax}}];
  28. uniform vec3 SpotLightPosition[{{.SpotLightsMax}}];
  29. uniform vec3 SpotLightDirection[{{.SpotLightsMax}}];
  30. uniform float SpotLightAngularDecay[{{.SpotLightsMax}}];
  31. uniform float SpotLightCutoffAngle[{{.SpotLightsMax}}];
  32. uniform float SpotLightLinearDecay[{{.SpotLightsMax}}];
  33. uniform float SpotLightQuadraticDecay[{{.SpotLightsMax}}];
  34. {{end}}
  35. `