long dissolves between multiple still images

Rev. James Anthony Walker's icon

This should seem simple, but I am without a solution here.
I am trying to take 4 still images, and cross dissolve between them very slowly.
4 images in this example ... the first dissolving into the next over the course over 20 minutes ... for a total length of an hour.

Ideally, a very slow pixel-by-pixel displacement is what i am looking for, but i don't have those chops, and don't know if it can be done.

Can it?

Michael Reichmann's icon

I put together a small patch that fades between four images over a specified duration. It simply uses the [mix] oerator in [jit.gl.pix] to interpolate between the textures.

I am not completely sure what you mean by dissolve, though. The transition between textures could definitely be made more sophisticated depending on the effect you are after.

It could also be improved structurally.
For example, instead of hard-coding four inputs, the patch could load an arbitrary number of images (e.g., from a folder) and cycle through them using two switching textures.

Max Patch
Copy patch and select New From Clipboard in Max.

Rev. James Anthony Walker's icon

Hi Michael

Thanks for sending this! It's not what I am envisioning, but that's certainly not YOUR fault. I just didn't explain it very well at all.

If I started over, I would say it more like this:

First off, let say for simplicity's sake, that we are using 2 images, same dimensions ... essentially "stacked" one over the other.

The first image that is visible is set to 100% opacity. The 2nd image initially to 0%.

A conventional way of changing what is seen would be to, over a long period of time ... reverse the opacity values.

What I am wondering is possible would be, instead of swapping out the opacity values for each entire image ... to change the opacity value of the 2nd image (initially @ 0% lumosity) to 100% ... but making that change over very small areas of the image, again and again and in a random way ... until all of the image is at 100%. They would not all arrive at 100% at the same time, but spread out over the total time of the sequence

If that makes any sense at all!

TFL's icon

[jit.fx.tr.dissolve] does exactly this on a per-pixel basis, but there is no displacement (not sure what you mean by that in this context by the way).

Alternatively you could use [jit.gl.bfg @basis noise.cell] and play with the @zoom or @scale attributes to get different grid size, and use that as a mask for your blending.

As for the multiple textures, I would load them all in a [jit.gl.textureset] and get them two by two to crossfade between them.

Unfortunately I don't have time to provide an example patch right now.

Rob Ramirez's icon

many ways you can go about it, and for full customization jit.gl.pix is the way, but maybe first check out the built in dissolve transition (jit.fx.tr.dissolve)

I'd use jit.line to trigger the animation for smoother transitions, and for extremely long transitions more bits can help, via setting type to float16 or float32

vizzie modules and other jit.fx.tr.* are worth experimenting with as the transition effect, but again jit.gl.pix gives the most flexibility

Max Patch
Copy patch and select New From Clipboard in Max.