Mothback/data/shaders.lua

53 lines
1.5 KiB
Lua
Raw Normal View History

2022-02-07 08:24:41 +00:00
Shaders = {}
Shaders.InsideLight = love.graphics.newShader[[
uniform vec2 light_pos;
uniform vec3 light_color;
uniform float range;
uniform float game_scale;
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){
vec4 pixel = Texel(texture, texture_coords );//This is the current pixel color
float distance_x = light_pos.x - screen_coords.x;
float distance_y = light_pos.y - screen_coords.y;
2022-02-07 08:24:41 +00:00
float distance = sqrt( pow(distance_x,2) + pow(distance_y,2) ) / game_scale;
if (distance < range){
2022-02-07 08:24:41 +00:00
float alpha = 1-(distance/10);
pixel.a = alpha;
if (color.r<light_color.r){
color.r = light_color.r;
}
if (color.g<light_color.g){
color.g = light_color.g;
}
if (color.b<light_color.b){
color.b = light_color.b;
}
}
return pixel * color;
}
]]
2022-02-07 08:24:41 +00:00
Shaders.OutsideDark = love.graphics.newShader[[
uniform vec2 light_pos;
uniform float range;
uniform float game_scale;
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){
vec4 pixel = Texel(texture, texture_coords );//This is the current pixel color
float distance_x = light_pos.x - screen_coords.x;
float distance_y = light_pos.y - screen_coords.y;
float distance = sqrt( pow(distance_x,2) + pow(distance_y,2) ) / game_scale;
if (distance < range){
float alpha = (distance/range);
if (pixel.a > alpha){
pixel.a = alpha;
}
}
return pixel * color;
}
]]