- generate random crisp image
- upscale crisp image
- create blurry copy of upscaled image
- add crisp version onto blurry image
- repeat on generated crisp and blurry image
- place pixel in middle of matrix
- generate set amout of pixels:
- place random pixel
- move pixel util it touches another placed pixel
- keep track of which pixels got connected to which pixels
- upscale by redrawing connections on bigger image
- assign each pixel different weight
- outside pixels get value 1
- weight of pixel = max weight of a pixel downstream + 1
- to avoid peaks that are too high, use 1-1/(1+h)
- find equivalent position in original image
- find distance to 4 nearest pixels
- new pixel value = sum of near pixels, weighted by distance
- create empty image of same size
- each pixel gets average of 4 sorrounding pixels
- add crisp image onto blurry image
- keep crisp version for further dla steps
- blur blurry image further and upscale it