Suppose you have painted a landscape with mountains and villages in the background, and you decide to put (lake) water at the bottom.

Now you need to reflect the landscape into the water.

The only solution I can think of, apart, obviously, from painting everything again upside down, is to copy the landscape layer into a new layer, mirror it vertically, maybe reduce the opacity a bit, and move it to its correct position.

However, when you have several layers it might become complicated to do this properly.

So I was thinking: would there be a way to do this using the clone brush, meaning cloning and mirroring at the same time?

As far as I can see, the clone brush copies whatever you reference exactly as it is, only translated by a given fixed vector, so the 'reference' circle moves exactly in sync with the 'writing' brush.
There is a 'mirror' option in the clone brush settings, and I tried activating it, but it does not seem to have any effect.
In theory, if one mirrors vertically, the reference circle should move horizontally in sync with the 'writing' brush, whereas vertically it should move in the opposite direction.

Just checking, in case I missed something or am not doing this correctly.


EDIT adding a photo as an example of work that requires light reflection

enter image description here

This was taken in Cascais, Portugal.

I understand the left side, where the water reflects most of the sky and lighthouse, as expected.
On the right, instead, you see much more of the seabed, especially where darker objects are mirrored.

It looks as if lighter objects 'cover' more of the seabed's own image, whereas darker objects allow more of it show.
This is particularly evident in the reflection of the two big dark arches under the pink house. The 'pillars', if that's what they're called, are lighter, and you see their reflection quite clearly in the water. The dark part in the middle instead is barely visible, and you can see the shapes of the flat rocks under the surface of the water.

Maybe the light coming up from the seabed and the one reflected by the surface are 'summed' or 'mixed' in some way before they reach the eye of the observer, so when one is much weaker (and that should be the case of darker objects) the other one prevails.

So... this would be a challenging one for me to reproduce. Maybe Krita's opacity settings would automatically do the light mixing trick. But I (still) don't fully grasp the physics of what is going on.

Very interesting though, IMO.

EDIT 2 duplicating and skewing the reflection

Suppose you have isolated the part of the image that is going to be reflected in the water:

enter image description here

Now, if you only copy, paste it and mirror it vertically, the reflection clearly does not match:

enter image description here

I'm thinking this may be because there is some perspective going on, and each object is actually mirrored by a surface that gets closer and closer to you.
I thought this was going to be very complicated, but then I tried a simple transform in Krita, the one with the two arrows, and it seemed to do the trick, together with some opacity reduction:

enter image description here

In theory, if I add the seabed image with its own reduced opacity, it will 'mix' with this reflection and make something convincing. Then the ripples, indeed as suggested by Billy Kerr. Obviously all this after painting the stuff :)

One thing surely goes wrong by using this method: the blue sea beyond the rocks on the left cannot possibly be reflected by the water on the observer's side of the rocks, as it is lower. Same for the palm leaves. The palm is in the foreground, so it would never be reflected on the observer's side. I guess all this can be fixed by excluding some parts of the image when selecting what to mirror... not super-easy, requires some thought; but it would be much worse without Krita!


I'm not a regular Krita user, but if I was doing this, regardless of which raster software I was using, I'd flatten all the layers temporarily, select and copy part of the image to use as a reflection. Undo the flatten, paste as a new layer, flip that, and move into position, and use a layer mask to make it fit the shape of the lake.

  • Thanks! I will try. I'm going to add an example to my post. Not the original question, but I think it raises interesting points about how light reflection and its interaction with water. – user6376297 Feb 14 at 19:49
  • @user6376297 - maybe you are looking for some sort of filter to create ripples. Not sure if Krita has this as standard, but I believe G'MIC can work with Krita, and it has Ripple, and Sinusoidal Water Distortion filters. I use G'MIC often with GIMP. – Billy Kerr Feb 14 at 20:27
  • 1
    @user6376297 There's a nice tutorial for GIMP here to create water reflections, maybe it could be modified for Krita, or alternatively just do it in GIMP since it's free too. – Billy Kerr Feb 14 at 21:04
  • 1
    @user6376297 - I've also found an article here which discusses creating reflections in paintings. It goes into some detail of the physics involved. Not a simple case of a flipped copy of the scene. There's a lot more to it. – Billy Kerr Feb 15 at 12:21
  • 1
    Thanks, that's very interesting, I bookmarked it. Indeed, I had started reflecting (no pun intended) on this. If I look at a table placed on a shiny floor in front of me, I will see mostly the top of the table, whereas the table's reflection on the floor will show the underside of the table. And in the picture I pasted above, some of the objects I see from their direct light, I could never see reflected in the water, as their light would have to go through other objects in front of them... So yeah, if one really wants to be accurate in doing this, it takes some clever thinking. No free meal. – user6376297 Feb 15 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.