Translucent Water Material - Displacement Banding Issue

is probably caused by the fact that transparent materials don’t write to the depth buffer. means that when a closer wave is occluding a further wave, which one ends up on top depends on the order in which the GPU renders them. Fixing is harder than it should be because Unreal doesn’t seem to have a depth only material domain and it doesn’t write custom depth for meshes with transparent materials. So you’ll need to make a few things: an opaque material that does your wave vertex displacement only, and a blueprint that has an extra ocean mesh component placed exactly on top of the original component, and a few extra nodes in your current ocean material. On the extra mesh, you want to use the opaque vertex displacement only material, mark it Render Custom Depth, and not Render in Main Pass. will write your oceans mesh into the custom depth buffer. Now in your normal transparent ocean material, add these nodes to depth test against the custom depth buffer:

Note that depth test is far from perfect but it should be good enough for what you need.

2 Likes