main.lua 854 B

123456789101112131415161718192021222324252627282930313233
  1. function lovr.load()
  2. shader = lovr.graphics.newShader([[
  3. vec4 lovrmain() {
  4. return DefaultPosition;
  5. }
  6. ]], [[
  7. const float gridSize = 25.;
  8. const float cellSize = .5;
  9. vec4 lovrmain() {
  10. vec2 uv = UV;
  11. // Distance-based alpha (1. at the middle, 0. at edges)
  12. float alpha = 1. - smoothstep(.15, .50, distance(uv, vec2(.5)));
  13. // Grid coordinate
  14. uv *= gridSize;
  15. uv /= cellSize;
  16. vec2 c = abs(fract(uv - .5) - .5) / fwidth(uv);
  17. float line = clamp(1. - min(c.x, c.y), 0., 1.);
  18. vec3 value = mix(vec3(.01, .01, .011), (vec3(.04)), line);
  19. return vec4(vec3(value), alpha);
  20. }
  21. ]], { flags = { highp = true } })
  22. lovr.graphics.setBackgroundColor(.05, .05, .05)
  23. end
  24. function lovr.draw(pass)
  25. pass:setShader(shader)
  26. pass:plane(0, 0, 0, 25, 25, -math.pi / 2, 1, 0, 0)
  27. end