Setting triangle normal (low poly water)

Hello, I’m trying to build a low-poly water material and I’m facing a smallish issue.

Looks pretty good (if I may say so). My only problem is that after deforming the vertices, the surface normals seem to be unchanged, resulting in constant colours for each triangle.

water.bmp (488 KB)

This is especially terrible if I use a flat plane:

Does anyone have any suggestions on how I can get the normals to update properly? I’m kind of lost.

Here’s a diagram of what I have so far:
water.bmp (488 KB)

Modifying world position offset does not affect geometry normals, hence shading issues. You can generate normals from heightmap using “NormalFromHeightmap” function.

This is what I did to get the below effect.

I started with a flat mesh that was subdivided and scaled. I then converted all quads to triangles, then added a displace modifier to the plane to give it some choppiness. I then baked a normal map to a flat plane using the “hi-poly” (not really hi-poly, but you get it) mesh. Once I had the normal map saved, I deleted the flat low-poly plane, and removed the displace modifier from the hi-poly mesh. You should then be left with a flat subdivided mesh and a normal map. In UE, import the subdivided mesh and the normal map. In your material, apply the normal map to the mesh, then apply your movement via a shader.

this should work no matter how you set up your animation.

I completely forgot about this thread. Ended up doing more or less what divi suggested.

TheOneKnownAsMe, your solution looks very neat but I’m unable to replicate the effect. Do you remember what type of displacement you used? It seems like you scrambled the vertices around inside the plane and not just on the z axis, am I correct?