Browse Source

Update Grid example; Add simple grid example;

bjorn 3 years ago
parent
commit
38871c8cb2
2 changed files with 39 additions and 29 deletions
  1. 6 29
      examples/Environment/Grid/main.lua
  2. 33 0
      examples/Environment/Grid_(Smooth)/main.lua

+ 6 - 29
examples/Environment/Grid/main.lua

@@ -1,33 +1,10 @@
 function lovr.load()
-  shader = lovr.graphics.newShader([[
-    vec4 position(mat4 projection, mat4 transform, vec4 vertex) {
-      return projection * transform * vertex;
-    }
-  ]], [[
-    const float gridSize = 25.;
-    const float cellSize = .5;
-
-    vec4 color(vec4 gcolor, sampler2D image, vec2 uv) {
-
-      // Distance-based alpha (1. at the middle, 0. at edges)
-      float alpha = 1. - smoothstep(.15, .50, distance(uv, vec2(.5)));
-
-      // Grid coordinate
-      uv *= gridSize;
-      uv /= cellSize;
-      vec2 c = abs(fract(uv - .5) - .5) / fwidth(uv);
-      float line = clamp(1. - min(c.x, c.y), 0., 1.);
-      vec3 value = mix(vec3(.01, .01, .011), (vec3(.04)), line);
-
-      return vec4(vec3(value), alpha);
-    }
-  ]], { flags = { highp = true } })
-
-  lovr.graphics.setBackgroundColor(.05, .05, .05)
+  lovr.graphics.setBackground(.05, .05, .05)
 end
 
-function lovr.draw()
-  lovr.graphics.setShader(shader)
-  lovr.graphics.plane('fill', 0, 0, 0, 25, 25, -math.pi / 2, 1, 0, 0)
-  lovr.graphics.setShader()
+function lovr.draw(pass)
+  pass:setColor(.1, .1, .12)
+  pass:plane(0, 0, 0, 25, 25, -math.pi / 2, 1, 0, 0)
+  pass:setColor(.2, .2, .2)
+  pass:plane(0, 0, 0, 25, 25, -math.pi / 2, 1, 0, 0, 'line', 50, 50)
 end

+ 33 - 0
examples/Environment/Grid_(Smooth)/main.lua

@@ -0,0 +1,33 @@
+function lovr.load()
+  shader = lovr.graphics.newShader([[
+    vec4 lovrmain() {
+      return DefaultPosition;
+    }
+  ]], [[
+    const float gridSize = 25.;
+    const float cellSize = .5;
+
+    vec4 lovrmain() {
+      vec2 uv = UV;
+
+      // Distance-based alpha (1. at the middle, 0. at edges)
+      float alpha = 1. - smoothstep(.15, .50, distance(uv, vec2(.5)));
+
+      // Grid coordinate
+      uv *= gridSize;
+      uv /= cellSize;
+      vec2 c = abs(fract(uv - .5) - .5) / fwidth(uv);
+      float line = clamp(1. - min(c.x, c.y), 0., 1.);
+      vec3 value = mix(vec3(.01, .01, .011), (vec3(.04)), line);
+
+      return vec4(vec3(value), alpha);
+    }
+  ]], { flags = { highp = true } })
+
+  lovr.graphics.setBackground(.05, .05, .05)
+end
+
+function lovr.draw(pass)
+  pass:setShader(shader)
+  pass:plane(0, 0, 0, 25, 25, -math.pi / 2, 1, 0, 0)
+end