Mobile - Using Textures for Vertex Animation

So for one of my clients I’d like to use vertex animation for some of the effects but I noticed that a lot of smartphones dont support anything vertex-manipulation when its being controlled by a texture.

I’d like to know which ES/Metal/Vulcan do support this. (if any)

I am not looking for alternative approaches, I am preferable looking for a list or at least a year (build year?) of phones that should be able to handle this.

its quite old, did you find any approach for this?

Generally ES4 and most current gen IOS should work.

I’m curious if you tried this Luos? The documentation says that mobile can only handle 2048 res max (which would mean a max of 2048 vertex for the vertex anim) so I would imagine it’s not suitable for mobile. However it wouldn’t surprise me if the documentation is wrong that higher textures may be supported if uncompressed.

(You might think that higher than 2k is too high for mobile anyway, but consider that that’s just 1 dimension, if there’s only 4 frames of animation for example then a 4096x4 texture isn’t actually that high)

Frankly havent tried yet since generally the stuff I do is low poly vfx related.
current gen mobiles are still limited to 2k textures so as long as you keep your model under that its fine.
Above that and you might want to look into skeletal mesh stuff instead.
That said, on the current mobile game I am working on we do have some 4k textures (both compressed and uncompressed) that seem to work just fine.

keep in mind though that you’ll easily flood max memory that way, and that internally even a 4096x4 texture gets upsized to 4096x4096 because … well… thats just how it is.
if there are just 4 frames of animation, you might be cheaper off having the four states as seperate meshes, combine them, and use some shader magic to show only one at the time.

there are a lot of ways to approach this, as many as you can think of. it all depends on where, why, how, and when. and when in doubt, use the profiler.

I think what you wrote above isn’t true, but I will admit that I’ve only used Unity for mobile not UE4.

For example the documentation says:
“Textures can only be a maximum size of 2048 in either dimension as this is the largest size allowed by the PVR compressor.”
The above text does indeed say 2k is max, but I’m suspecting that perhaps they are ASSUMING the use of PVR compression, whereas vertex animation is uncompressed.

And I’m thinking perhaps the same goes for what you said about upscaling to square texture. I seem to recall Unity had the same issue but that it was either because of mipmaps or because of the compression. Whereas for Vertex Animation you’re not using either of those things.
i.e. as far as I can remember the square requirement wasn’t a hardware requirement, only compression/mipmap.

Well 4 frames was just an extreme example, but sometimes due to the smooth interpelation I can get away with surprisingly low frames, so let’s say 8 or something. But if the object is 5k vertex I don’t really want to multiply that by 8

no this isnt unity, almost everything is handled differently.
current gen IOS does not handle 4k textures, they are reduced to 2k, regardless if its compressed or not. (afaict, various mobile devs I talked to)

you might be correct when the vertex displacement is set to such a texture, but generally internally all textures are made square, regardless of their usecase. (it wont mess up uv maps, ui layout etc) just how it works.

its best to try it I guess, only sure way to know for sure since occasionally there are even conflicting statements in the wiki.