mirror of
https://github.com/tanema/light_world.lua.git
synced 2024-12-24 20:24:19 +00:00
7fe549a01a
-cut out complicated light angle calulations and instead put in a arc stencil -stenciled the range of each light to optimize the shader drawing -refactors postshaders to user proper love variables -minimized amount of canvases -added better functionality to my canvas util -refactored blurring to be in one place
19 lines
571 B
GLSL
19 lines
571 B
GLSL
#define distortion 0.2
|
|
vec2 radialDistortion(vec2 coord) {
|
|
vec2 cc = coord - 0.5;
|
|
float dist = dot(cc, cc) * distortion;
|
|
return coord + cc * (1.0 + dist) * dist;
|
|
}
|
|
|
|
vec4 checkTexelBounds(Image texture, vec2 coords) {
|
|
vec2 ss = step(coords, vec2(1.0, 1.0)) * step(vec2(0.0, 0.0), coords);
|
|
return Texel(texture, coords) * ss.x * ss.y;
|
|
}
|
|
|
|
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) {
|
|
vec2 coords = radialDistortion(texture_coords);
|
|
vec4 texcolor = checkTexelBounds(texture, coords);
|
|
texcolor.a = 1.0;
|
|
return texcolor;
|
|
}
|