fixed the scanlines shader

This commit is contained in:
Tim Anema 2014-09-26 13:42:00 -04:00
parent f2b9d62efe
commit d56b4ca660
3 changed files with 5 additions and 7 deletions

View File

@ -290,7 +290,6 @@ function light_world:update()
love.graphics.setBlendMode("alpha") love.graphics.setBlendMode("alpha")
end end
print(self.optionGlow, self.isGlow)
if self.optionGlow and self.isGlow then if self.optionGlow and self.isGlow then
-- create glow map -- create glow map
self.glowMap:clear(0, 0, 0) self.glowMap:clear(0, 0, 0)

View File

@ -121,14 +121,13 @@ love.postshader.addEffect = function(shader, ...)
love.graphics.draw(LOVE_POSTSHADER_BUFFER_RENDER) love.graphics.draw(LOVE_POSTSHADER_BUFFER_RENDER)
elseif shader == "scanlines" then elseif shader == "scanlines" then
-- Scanlines Shader -- Scanlines Shader
--LOVE_POSTSHADER_SCANLINES:send("screen", {love.window.getWidth(), love.window.getHeight()}) LOVE_POSTSHADER_SCANLINES:send("screen", {love.window.getWidth(), love.window.getHeight()})
LOVE_POSTSHADER_SCANLINES:send("strength", args[1] or 2.0) LOVE_POSTSHADER_SCANLINES:send("strength", args[1] or 2.0)
LOVE_POSTSHADER_SCANLINES:send("time", args[2] or love.timer.getTime()) LOVE_POSTSHADER_SCANLINES:send("time", args[2] or love.timer.getTime())
love.graphics.setShader(LOVE_POSTSHADER_SCANLINES) love.graphics.setShader(LOVE_POSTSHADER_SCANLINES)
love.graphics.draw(LOVE_POSTSHADER_BUFFER_RENDER) love.graphics.draw(LOVE_POSTSHADER_BUFFER_RENDER)
elseif shader == "tiltshift" then elseif shader == "tiltshift" then
-- Blur Shader -- Blur Shader
LOVE_POSTSHADER_BLURV:send("screen", {love.window.getWidth(), love.window.getHeight()})
LOVE_POSTSHADER_BLURH:send("screen", {love.window.getWidth(), love.window.getHeight()}) LOVE_POSTSHADER_BLURH:send("screen", {love.window.getWidth(), love.window.getHeight()})
LOVE_POSTSHADER_BLURV:send("steps", args[1] or 2.0) LOVE_POSTSHADER_BLURV:send("steps", args[1] or 2.0)
LOVE_POSTSHADER_BLURH:send("steps", args[1] or 2.0) LOVE_POSTSHADER_BLURH:send("steps", args[1] or 2.0)

View File

@ -1,9 +1,9 @@
extern vec2 screenHeight = vec2(800.0, 600.0); extern vec2 screen = vec2(800.0, 600.0);
extern float strength = 2.0; extern float strength = 2.0;
extern float time = 0.0; extern float time = 0.0;
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords){ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords){
vec2 pSize = 1.0 / screenHeight; vec2 pSize = 1.0 / screen;
float brightness = 1.0; float brightness = 1.0;
float offsetX = sin(texture_coords.y * 10.0 + time * strength) * pSize.x; float offsetX = sin(texture_coords.y * 10.0 + time * strength) * pSize.x;
float corner = 500.0; float corner = 500.0;
@ -25,7 +25,7 @@ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords){
float green = Texel(texture, vec2(texture_coords.x + offsetX, texture_coords.y - pSize.y * 0.5)).g; float green = Texel(texture, vec2(texture_coords.x + offsetX, texture_coords.y - pSize.y * 0.5)).g;
float blue = Texel(texture, vec2(texture_coords.x + offsetX, texture_coords.y)).b; float blue = Texel(texture, vec2(texture_coords.x + offsetX, texture_coords.y)).b;
if(mod(texture_coords.y * screenHeight.y, 2.0) > 0.5) { if(mod(texture_coords.y * screen.y, 2.0) > 0.5) {
return vec4(vec3(red, green, blue) * brightness, 1.0); return vec4(vec3(red, green, blue) * brightness, 1.0);
} else { } else {
return vec4(vec3(red * 0.75, green * 0.75, blue * 0.75) * brightness, 1.0); return vec4(vec3(red * 0.75, green * 0.75, blue * 0.75) * brightness, 1.0);