I want to test procedural texture generation for one of my projects, my goal is to use those generated textures with random UV-mapping in order to avoid noticeable texture repetition.

For purely random textures is simple and straightforward, imagine the texture below as the the top of Minecraft-like grass block:

With texture repetition looks pretty bad:

But with a bigger texture and UV-mapping randomly, repetition is not as noticeable:

And if I add rotation and/or make the texture bigger (so I can scatter the mapping more) it would be even better, also as a bonus i can move the grass/dirt line for biome variations or gradients:

The problem with this technique1 is that this only works with this "pixel soup" since it doesn't have any noticeable pattern it shows a decent result no matter what the UV-mapping is.

But for images with a pattern it only works as long as the pattern follows strict rules; in the example below green-pink and blue-red points should always connect.

And the random UV-mapping should always be set in a way that the green-pink and blue-red points are picked (the UV coordinates should be a multiple of a chunk), that might be good enough but I wonder if there's a way to improve this generation, can I do something that relaxes the rules I've mentioned before?

Specifically I'm asking:

  • A seamless texture can be created without forcing chunk patterns to match borders or with more freedom matching chunk patterns?
  • The texture can be created in a way that every chunk would match in more ways: instead of every chunk, every ½chunk ¼chunk (even if it is only in one axis)?

1Does it have a name? It would be very useful to know in order to search documentation about it.



You must log in to answer this question.

Browse other questions tagged .