According to the brief description provided by the author, the watery effect is the result of the combination of two images: one being used as a displacement map for the second one.
And, indeed, if you look carefully you can discern at the center of the picture the outline of a sloping body leaning towards the left. The shape of that body seems to “push” the pixels (of the first picture) all around as if it was emerging from the water.
I suspect, however, that the process is a bit more complex than that, and for two reasons at least:
- looking at the picture I can’t help but to think that noise is involved at some point
- I’ve tried myself to use a picture as a displacement map for another picture (of same dimensions) and the output was, of course, very different not to say disappointing:
a painting by Dante Gabriel Rossetti is used as a displacement map for this Da Vinci portrait
here Perlin Noise is used for displacement mapping
Here the displacement rules are simple:
- take the brightness of each pixel in the first picture
- map that value to a smaller range :
v = map(brightness, 0, 255, 0, 20)
- substract that value to the x and y coordinates of the second picture :
set(x - v, y - v, color)
Notice however how the painting used as a displacement map is not visible unlike on Solaas’s work.
I therefore have 2 questions:
- What do you think the displacement rules could be in Solaas’w work ?
- Do you think another step is involved in the process ? If so, what could it be then ? (adding noise ? implementing a convolution matrix ?)
I would really like to hear your suggestions.