3

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.

Thanks!


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!

2 Answers 2

3

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.

7
  • 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. Commented Feb 14, 2021 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
    Commented Feb 14, 2021 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
    Commented Feb 14, 2021 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
    Commented Feb 15, 2021 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. Commented Feb 15, 2021 at 20:24
0

I may be too late but what you want is a blending mode, and I believe some have the same name either in Krita, GIMP or Photoshop!

You need a blending mode on the reflection layer that shows the lighter values and ignore the darker ones.

Then you paint the seabed or whatever is underneath, and simply apply one of the lightening blending modes (and there are some besides Screen that do the maths a little different, so you have to experiment the best one for your case) available at your software of choice on the reflection layer.

That is going to show only the clear pixels of the layer if they are clearer than the bottom and ignore them if they are darker, or some variation/percentage of that depending on the coding used in the specific blending mode.

Remember opacity and fill sliders in Photoshop's case may have different results depending on the blending mode used, that may be true to Krita as well, but I'm not sure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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