mirror of
https://github.com/tanema/light_world.lua.git
synced 2024-12-24 20:24:19 +00:00
378586c406
Added util.loadShader - loads shaders and sets uniform variables Fixed implicit type conversions in shaders
24 lines
854 B
GLSL
24 lines
854 B
GLSL
extern Image backBuffer;
|
|
|
|
extern float reflectionStrength;
|
|
extern float reflectionVisibility;
|
|
|
|
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) {
|
|
vec2 pSize = vec2(1.0 / love_ScreenSize.x, 1.0 / love_ScreenSize.y);
|
|
vec4 normal = Texel(texture, texture_coords);
|
|
if(normal.a > 0.0 && normal.r > 0.0) {
|
|
vec3 pColor = Texel(backBuffer, texture_coords).rgb;
|
|
vec4 pColor2;
|
|
for(int i = 0; i < int(reflectionStrength); i++) {
|
|
pColor2 = Texel(texture, vec2(texture_coords.x, texture_coords.y + pSize.y * float(i)));
|
|
if(pColor2.a > 0.0 && pColor2.g > 0.0) {
|
|
vec3 rColor = Texel(backBuffer, vec2(texture_coords.x, texture_coords.y + pSize.y * float(i) * 2.0)).rgb;
|
|
return vec4(rColor, (1.0 - float(i) / reflectionStrength) * reflectionVisibility);
|
|
}
|
|
}
|
|
return vec4(0.0);
|
|
} else {
|
|
return vec4(0.0);
|
|
}
|
|
}
|