Hello, i was looking for techniques used to avoid tiling on meshes. I know the macro variation technique, and i applied it to my landscape material. but i was wondering if there were others ressources friendly techniques to avoid tiling on meshes, for example on buildings. I’m sadly discovering that tiling is actually a near persistent problem. i know also obviously the decal stuff, but it’s ressource consuming (according to what i heard)
back in ye olde day we would lerp two of the same textures with a noise texture to create more variety.
You can also lerp between a smaller and bigger scale texture and lerp between distance to camera to create a fake-ish less tiling effect.
you can also combine them, or use multiple layers that add different kinds of soil/surfaces.
With buildings if you have a horizontal trim breaking each part up, slightly offsetting the uv’s (either on the mesh itself, or trough some uv-manipulation in the shader) creates a less tiling-looking result.
If you’re using Unreal Engine, you’re not doing it to run well on a GeForce 2 graphics card. Yes, you can scale down Unreal Engine to work okay on modern phones, but modern phones actually have pretty reasonable GPUs (at least along some axes.)
I highly recommend using the noise-texture-splatting method. It will let you go very far, for not much cost, relatively speaking!
Another approach is to color objects using simple flat colors, and let roughness and normal do all the heavy lifting – this is actually generally closer to how for example buildings are painted in the real world.
Finally, decals use some resources, sure, but so do characters. Are you going to not have characters in your game, because they use some resources? The resources of the target computer are there for you to use them!
My advice is to decide on a target system (specific amount of CPU threads, GPU RAM and shader capacity, as well as main RAM) and then develop your game, effects, and art, to run at your designated target frame rate on the designated target. That could be “15 fps on a GeForce GTX 1060” for a very heavy game, like, say, Cyberpunk 2077, or it could be “120 fps on a GeForce 970” for a more twitchy game with a less demanding art style, like, say, Overwatch.
Console developers of course have an easier time determining what the “target” looks like, but it can be done for mobile and PC gaming too.
(Btw, Overwatch is a game worth studying for how much polish and how great an experience they deliver while running really quite well on quite modest target systems. It takes not just skill, but also dedication to get to that result!)
google texture bombing
From the original post:
The original poster seems to be worried about “resource consumption” without giving us a clear idea about what resources they have chosen to use. If they use less resources than the target machine has available, then they’re actually just under-delivering on the user experience.
So, maybe the approaches that do exist, such as decals, and noise blends, and world space peturbation, are Just Fine, based on what they’re actually building. They won’t know until they try and benchmark. And if the benchmark for the easy way says “this works Just Fine,” then it’s just a waste of time and resources to try to make the system more idle while playing the game.
the use of only using a normalmap is a brilliant idea. i tried once actually, but didn’t get good results then. i guess i was out of luck that day. i retried, and it works great.
regarding the under delivering thing, i think it’s pretty subjective. each studio has its own approach, and priorities. Thanks for the good advices