Vertex Animation Texture for Dynamic Remeshing

Hello all, I have a question regarding Vertex Animation for dynamic remeshing.

When the lookup texture is exported as 1024 in Houdini, it will work fine in UE5. However, when it’s exported as 2048 or higher, it will get glitches (corrupted) in UE5. I use the same simulation for both cases.

Has anyone had the same issue?

Thanks,

Looks like it cannot read half of the information. Not fully sure what goes wrong there so a bit more detail would be great.

What is you process when exporting?
I didn’t touch Labs VAT export for a bit, but when set up, I don’t remember to have bothered with texture size at all.

And what is the reason to go “2048 or higher”?
In both pictures, you have the same amount of data. The resource size is the same and the pixel amount is the same (1024x7700 = 2048x3850), but just shifted. Which might be (part of) the cause of this error.

7700 (/4 = 1925) is cleanly divisable by four while 3850 (/4 = 962.5) is not. I would guess that texture compression is causing these problems for you.

2 Likes

Hi raytheonly, it’s purely to store more points. In my case, it doesn’t seem to be able to export a texture higher than 10k so around 1024 x 9999 may be the max limit with 1024. 4096 x 4096 can store more points.

Hi fleity, why is it divided by 4? Is it how VAT works? The texture compression setting is HDR so it shouldn’t get compressed in my opinion.

The multiple of 4 thing is because BC7 texture compression stores data in blocks of 4x4 and therefore only works if your texture has width and height as multiples of 4 (and that is about everything I know about this :grimacing:)
I have very little knowledge about how Unreal handles this, but since this is more a graphics API thing I believe it is probably pretty similar to how Unity and every other engine handle it.

You mean HDR as in that link? That sounds correct, but I would still recommend you try getting the texture to a multiple of 4 or even POT scale because it has to be stored in a GPU friendly format somehow and that could still cause issues for your VAT texture (because anything that changes the data in the texture basically breaks your cached simulation).
Disable mip maps on that texture too if you haven’t already.

1 Like

I think the divisible by 4 thing could be an issue, but I would think that the one that is divisible by 4 would be more likely to have problems rather than the one that is not, and this is the opposite case. Still it would be good to make sure your texture has “NoMipmaps” set

Another thing to check is to make sure you have “full precision UVs” turned on for the Mesh. If the mesh is using imprecise UV information then it will sample the wrong pixel on larger textures.

It’s peculiar that exporting the lookup texture as 2048 or higher in Houdini causes glitches or corruption in UE5, while it works fine with a 1024 resolution. There could be a few potential reasons for this behavior. Firstly, it’s worth checking if there are any specific limitations or requirements for vertex animation textures in UE5, especially regarding the maximum resolution supported. It’s possible that exceeding a certain resolution might cause unexpected issues. Additionally, consider investigating the texture compression settings when exporting from Houdini. Higher resolutions may require different compression techniques or settings to ensure proper compatibility with UE5.

Ah, that is a good catch. I do not know how the newest version manages it but my guess what it might be: the shader will read each pixel of the texture and will move a specific step forward to read the next. So it might be that 1. due to compression information gets lost or 2. every fourth pixel will have scrambled information as it sits between two pixel.