diff options
Diffstat (limited to 'bin/main.lua')
-rw-r--r-- | bin/main.lua | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/bin/main.lua b/bin/main.lua index 3231705..f814079 100644 --- a/bin/main.lua +++ b/bin/main.lua @@ -2,13 +2,14 @@ local shader = [[ extern Image diffuse; extern number mx; extern number my; +extern number i ; vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) { vec3 light_vec = vec3(mx ,my,1); vec3 light_direction = light_vec - vec3(pixel_coords, 0); float distance = length(light_direction); - light_direction = normalize(light_direction); + light_direction = normalize(light_direction) * abs(sin(i)); vec3 normal = Texel(texture, texture_coords).xyz; normal.y = 1 - normal.y; @@ -35,27 +36,52 @@ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) } ]] +local shader2 = [[ +extern Image diffuse; +vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) +{ + return Texel(diffuse, texture_coords); +} +]] + local jg = jin.graphics local effect = jg.Shader(shader) +local effect2 = jg.Shader(shader2) local diffuse = jg.Image("treestump_diffuse.png") local img = jg.Image("treestump.png") local ww, wh = jg.size() +local scale = 2 +ww = ww / scale +wh = wh / scale jin.core.onEvent = function(e) if e.type == "quit" then jin.core.quit() end end - +local mx, my jin.core.onUpdate = function() - local mx, my = jin.mouse.position() + mx, my = jin.mouse.position() + mx = mx / 2 + my = my / 2 my = wh - my - effect:send("number", "mx", mx) - effect:send("number", "my", my) end - +img:setAnchor(16, 16) +local cvs = jg.Canvas(320, 240) +local i = 0 jin.core.onDraw = function() + i = i + 0.1 + jg.bind(cvs) + jg.use(effect) + effect:send("number", "mx", mx) + effect:send("number", "my", my) + effect:send("number", "i", i) + effect:send("Image", "diffuse", diffuse) + jg.draw(img, ww / 2, wh / 2, 2, 2) + jg.unuse() jg.use(effect) - effect:send("Image", "diffuse", diffuse); - img:setAnchor(16, 16) - jg.draw(img, 250, 200, 2, 2) + effect:send("Image", "diffuse", diffuse) + jg.draw(img, ww / 3, wh / 2, 2, 2) + jg.unuse() + jg.unbind() + jg.draw(cvs, 0, 0, 2, 2) end |