extern vec2 pointPos;
vec4 effect( vec4 color, Image img, vec2 tc, vec2 sc )
{
vec2 pos = pointPos/love_ScreenSize.xy;
vec2 dp = pos-tc;
float aphi = dp.y/dp.x;
float dx = dp.x/30;
float ret = 0;
for (int i = 0; i < 30; ++i)
{
float x = dx*i;
vec4 c = Texel(img,pos-vec2(x,x*aphi));
if(c.a!=0){
ret = 1.0;
break;
}
}
return vec4(0,0,0,1)*ret;
}
Юзаю тот шейдер, получаю такую картинку, чем меньше интераций - тем больше квадратность.
Алгоритм: