Map Displace or Map Displacement Feature

Hello,

I would like to request for a feature known as “Map Displace” or “Map Displacement”

What’s a “Map Displacement”?
It’s something based on 2 layers, one is the map, and the other one is the image/paint that we want to deforms-distorts based on black/grey/white values of the other layer/image, called the map (if I understood how it works)

What for?
To have a realistic effect on texts, paints, images, when they are blend with a textured background (the map).
An effect like a text, a paint or an image to become for example: a flag in the wind, or matches the deformation of a wrinkled clothe, or matches a disformed wall like a disformed bricked wall like a new ly paint street tag/paint on a old broken wall, painted mock-up teeShirt, reflections following the ripples of water, and so…
Example:
I quickly made it in GIMP for visual purpose
Please, see how the “bumps” have displaced the original paint to match the “wrinkled - creased” texture

Below an example from: https://youtu.be/huvysaySBrw?t=105 (see also how the displacement map made the text “furry” around the letter.

Why?
Because all blending effects nor the different Actual Maps that Krita provides, do not disform-transforms the “matters” to look like it was “Folded” or wrapped" around an object.

Do you have a link that shows or explains “Map Displace/Displacement”:
The beginning of this doc.
https://docs.gimp.org/2.10/en/gimp-filter-displace.html
it’s a GIMP doc reference that explain in better words that I could, how it works (change the 2 letters ( /en/ ) in the URL to have it in your favorite language)

Some Visual references? (YouTube, timed at the most important part, except the first video)

Do you have a simple way to do it quickly for the developers to take a look at?
Yes with GIMP a very quick way to try it.

  • Be assured that It is Not a Krita comparison, it’s ONLY the simplest way I found for you to “try” out on how the Map Displace/Displacement works without the need to buy a software.

So in GIMP, create a new image (we don’t care about color or alpha),

  1. Then go to Filters/G’MIC_Qt > Patterns/Satin, the default values are fair enough, just click OK, (it’s just to create a very-quick random map as example), This layer will be the map.
  2. Import an image as layer mode Grain Merge or Multiply or screen or overlay or so, depending the brightness/darkness of this image put that new layer above the “Satin” layer from G’MIC
  3. Make sure that this image layer is selected.
  4. Then Filters>Map>Displace… a new inter-active window opens
  5. The two “Aux input” give the options for 2 different layers (2 maps), select the satin layer as “aux input” (both Aux input)
  6. Then slowly move the cursors “Horizontal/Vertical” to the right or to the left

Another example: Instead of an image I did it with a text (OK, I did it way to quickly, it’s just to give you the idea)

In the hope that my explanations were not confusing and that I gave enough infos. (Plz, ask me if any lack of infos I can provide)
In all case, thanks a lot for your time reading this.

EDIT, I forgot a “mock-up” alike (I just copied GIMP as it give a good idea with lots of options (way more options than I actually use)

10 Likes

There is something called “warp map” in gmic, which is very similar to this (I used to look for similar functions in ps)

This is the effect. There are three adjustable parameters
But it is in the “Test” column.

Thanks for the info,
But as you said, It’s similar, quite hard to work with as you don’t see the map beneath, it’s a hit or miss (I did missed few times) also it works in one way only, white are pushed down and dark are pushed up, but not the other way (negative or positive values) and you can’t chose the way to displace (horizontal or vertical or both).

Having said that, it’s nice to know that we can have an alike work around!
In all case that’s good to know that G’MIC has something similar, thanks a lot for the info, I very much appreciated.

I have no idea, what kind of math is involved here… but: would it be possible to implement this as a filter mask? That’d be great!

@dreamkeeper Yes, that would be great :+1:
But to develop it and implement it, that might not be an easy task, may be a long run… (I have no idea as I’m no software developer, only Krita’s dev can tell)

For the Cartesian displacement, I’ve found some “Math”, they are here 13.3. Displace , may be not the full formula, but it’s explained in deep, and for the polar displacement, it’s just after the Cartesian.

And below, there is the displacement calculation > 13.3. Displace

More info from Imagemagick: Image Mapped Effects -- IM v6 Examples

2 Likes

@Deif_Lou
I’m playing with some example of maps from your URL (for example: gradient conical (asym) + gradient radial, then I displace text/imade) trying both polar mode and cartesian mode… you made me re-discovering this tool, it goes WAY beyond than I’ve dreamed of. (thank you so much)

Example: Hiding part of a text that follow horizon with B&W image from channel

Yes, Imagemagick is a good source for knowing how different image manipulation algorithms work, specially that “legacy Usage” page.
You know what? Some time ago I started an app kind of similar in purpose to imagemagick in that it was meant to apply a series of effects to an image. It started as a way of learning and experimenting with image processing and made it that way so that it was easy to implement a new effect as a plugin. I abandoned it but one of the image effects I had in the todo list to implement was the displacement mapping.
That means I think this effect can be very useful, so I’m proposing to just come up in this thread with an interface and list of features that this filter needs to have and I’ll try to implement it through this summer.

11 Likes

Thanks folks! I’ll have look. :slightly_smiling_face:

That app looks really promising!

I’ve been playing around with ImageMagick for a while, I always get 8bit low quality Jpeg files of displacement/zdepth maps at work and need to render reliefs with them. When you have a series of 40 coins and would need to repeat everything step by step… yeah, IM solved my problem.
One line of “code” runs through all of the bad jpgs, increases the contrast just a little, filters noise, makes them 32bit… batch tools like these are life savers.
I wanted to get into programming to make a little GUI for command line programs like IM and FFMpeg. But that is literally everything I know (for now), a few commands in the CL. :smiley:

I was about to write up a similar request but saw this was already requested. Below is an example of how I use displacement in GIMP to give my comic art a subtle ink bleed, it helps humanize the clean digital ink work .

I know it’s subtle, that’s the level of displacement needed in this case, however, as outlined in the thread, displacement within Krita would be nice for more extreme effects, keeping everything in the one app helps with productivity.

The cheaper option might be to allow the ‘copy layer’ function to paste directly into Gimp, currently if I copy something in Gimp I can paste directly into Krita, but not the other way.
Anyway, it’s something to consider, Krita has so much it feels wrong to ask for more.

4 Likes

Wow, that’s a big difference, it’s way-way better with the displaced ink bleed effect, literally to the next level :+1: