main.lua 734 B

12345678910111213141516171819202122232425262728293031323334
  1. function lovr.load()
  2. shader = lovr.graphics.newShader([[
  3. vec4 lovrmain() {
  4. return DefaultPosition;
  5. }
  6. ]], [[
  7. #define BANDS 5.0
  8. vec4 lovrmain() {
  9. const vec3 lightDirection = vec3(-1, -1, -1);
  10. vec3 L = normalize(-lightDirection);
  11. vec3 N = normalize(Normal);
  12. float normal = .5 + dot(N, L) * .5;
  13. vec3 baseColor = Color.rgb * normal;
  14. vec3 clampedColor = round(baseColor * BANDS) / BANDS;
  15. return vec4(clampedColor, Color.a);
  16. }
  17. ]])
  18. end
  19. function lovr.draw(pass)
  20. pass:setShader(shader)
  21. pass:setColor(0, 0, 1)
  22. pass:sphere(0, 1.7, -1, .15)
  23. pass:setColor(0, 1, 0)
  24. pass:sphere(-.4, 1.7, -1, .15)
  25. pass:setColor(1, 0, 0)
  26. pass:sphere(.4, 1.7, -1, .15)
  27. end