Is there a material node for animating a material from the center?

Im trying to have a material “expand” outward. Sort of like the panner node, but from the center outward in all directions. I can’t seem to find any tutorials. I could just UV map the mesh, but I’d like to use rotators too.

I suspect I can get the effect by just using a multiply on texture coordinates, but thats not going to get me a seamless loop.

Is this even possible?

Just to understand, you want something, say if it were a small ringin the middle of the texture, to be such that over time that ring expands outwards towards the edge of the mesh; akin to ‘zooming’ into the texture?

Does this loop over time? Is the intent to get something pixelated at the end, or what?

If you want to zoom-in, you can try scale-uvs-by-center, otherwise if you want something unpixelated, you want a flipbook, a volume texture to animate through, or something with multiple slices of data you can trip through over time.

Yeah, the place I normally use something like this is the standard mesh “splash” effect on a waterfall. Basically, where a texture radiates outward or inward. It would be a loop. Flipbook wouldnt be great for this I dont think. Appreciate the response though. I’ll take a look at the other suggestions

If it needs to go towards/away from a mesh, you can look at mesh-distance fields. They can create a true-to-form gradient (alpha) you can then exploit.

I was actually looking at old bookmarks; serendipitous: Distance Field Flow Map

EDIT, if you are also using UE5 w/lumen, distance fields are already being used, so why not leverage the expense. You can do a lot of nifty, ‘reactive’ type of material effects w/them.

ref - Lumen Technical Details | Unreal Engine Documentation

" Software Ray Tracing

Lumen uses Software Ray Tracing against Signed Distance Fields by default. This tracing representation is supported on any hardware supporting Shader Model 5 (SM5), and only requires Generate Mesh Distance Fields to be enabled in the project settings."

If you want to achieve this effect It is possible to do so by converting the texture coordinates from cartesian to polar and then plugging those coordinates into a panner.

Here is an image of a material function that I made to achieve the cartesian to polar conversion: (This is a duplicate of a similar function in Unity)

This will project take a texture that is typically displayed like this:

And display it like this:

In other words, if you wanted to make a ring like @Frenetic suggested earlier you would need a texture with a horizontal stripe.

If you use this material function with a panner like so:

It will animate the associated texture like this:
AnimatedTexture_1
(the stutter is from the Gif looping)

Hope this gives you what you where looking for!

3 Likes

I would love to learn the set(s) of math(s) behind manipulating UVs; I know that’s where-its-at but have a hard time finding sources.

Suggestions?

In a rare case where I can legit reply to my own post, check out the Unreal Material Lab for all kinds of nifty stuff, and what apparently seems like a ton of UV tricks.

ref - UI Material Lab in UE Online Learning - UE Marketplace

Checl the pics in the marketplace listing and you can see polar/polar2 and a bunch of other UV type functions in the 2nd pic:

1 Like