Mobile material is pixelated, Custom UV solution doesn't work!

Hey there,

When I was initially building the materials for my game, both the landscape and the water materials were giving off a very pixelated look.

Doing some searching online, and I found this: Mobile Material Texture Resolution Problem - Rendering - Epic Developer Community Forums

It says to use the custom uv channels to fix the issue. I did this on my landscape material, and it worked fine.

for the water, however, I haven’t had any luck. In fact it breaks the material completely!

Here is the water material before I attempted to fix it, with the pixelation:

And here is my material, with the custom uv’s applied (I can’t use custom UV channel 1 because that is being used for the second uv channel that the object has)

With it applied, it looks like this:

The material is now completely broken. I tried changing some things here and there, but I haven’t had any luck.

Thanks in advance,

Hi ,

Why don’t you use the UV0 channel of the custom UV’s?

Now the reason it is pixelated is because of Unreal using lower precision on mobile by default. Meaning it is not recommended to use high values as a UV input since it will look broken. So my guess is this pixelated effect comes from the fact you are using a Time node in the UV’s, which is for low precision fairly high after a couple of seconds. You could use a Frac before hooking your Multiply(Time, Speed) up with your Time input of the panner node.

Just to clarify what is going on. Frac will return the fractional portion of the given value. Meaning:

1,3 becomes 0,3.

0,8 stays 0,8.

Implementation could look something like this:

return value - floor(value);

Hey there, I tried adding the frac right after the multiply node, like in the image, and It is still giving me a broken material:

I do not have much experience or knowledge about mobile rendering, but my best guess would be that you are somehow running into issue with interpolators to handle two custom UVs and reflection vector at the same time. Try removing reflection vector from your material, to see if it helps.

At the same time, try to changing material blend mode to opaque.

Please post the material or toggle the material stats on and off and post the errors. If you give me the material I can test it on my mobile devices. My guess is maybe mobile does not support that amount of custom uv’s.

Here is the material, hope this helps!

Hi ,

I tested your material on a Samsung Galaxy S7 and an iPad3, both are working fine. Make sure all your texture samplers have an input texture assigned and maybe throw out your Binaries, Build, Intermediate and Saved folders from your project folder, just to make sure it recreates all your shaders.

Good luck!

That is really strange, as those screenshots you see are on a Samsung

I’ll do what you said tonight, and will get back to you!

I did what you said, and I was unable to open up my project:

Luckily, I backed the files up so I was able to revert and got it working again.

If this happens it means there is an error in your C++ code. So just open in in visual studio and fix the errors, recompile, and you are done.

After a bunch of testing, it turned out that the ‘blend angle corrected normals’ node breaks the material. Deleting it fixed the issue