Accidentally, I found a way to generate nice textures :
- I start with a set of random points, generated with the
noise_poissondisk
command (I love this one, thanks again @garagecoder !).
600,600 noise_poissondisk. 5
- Now, for all these isolated points, I look in their neighborhood what other point is the closest one, and I draw a segment between the two.
100%,100%
eval.. "i?(
siz = 2;
pmin = qmin = dmin = inf;
while (isinf(dmin),
y0 = y - siz; y1 = y + siz; x0 = x - siz; x1 = x + siz;
for (q = y0, q<=y1, ++q,
for (p = x0, p<=x1, ++p,
i(p,q) && [p,q]!=[x,y]?(
d = norm(p - x,q - y);
d<dmin?(dmin = d; pmin = p; qmin = q);
);
);
);
siz*=2;
);
polygon(#-1,2,x,y,pmin,qmin,1,1);
)" rm..
- Now, I apply the
close_binary
command, that is used in our lineart “smart coloring” filter in the plug-in.
close_binary. ,
That’s the step that takes most of the computation time. We end up with:
(this command basically tries to connect lines togethers).
- Now, a bit of anisotropic smoothing and normalization:
repeat 3 { smooth. 10,0,1,1,2 } n. 0,255 normalize_local. ,
And we get:
Isn’t that cool ?
And if you combine that with an image, you get something like this:
which is quite nice.
The whole process is a bit slow because of the close_binary
command. But I like the outcome!
That’s it, that was my Sunday experiments