Точно, вы должны искать шумы Perlin / Simplex. Думайте об этом как о функции f (x, y, ...) (сколько угодно переменных), которая будет выдавать случайный шум. Разница с чистым шумом заключается в том, что он действует на градиенты, поэтому он будет выглядеть более естественно, поскольку он «рисует» градиенты вместо простого шума с высокой локальной изменчивостью. Симплексный шум почти такой же, как у Perlin, но он делит пространство на simplexes вместо того, чтобы работать в n-мерных сетках, как это делает Perlin. Это снижает вычислительные затраты и дает некоторые дополнительные преимущества .
Это может показаться страшным, но на самом деле все просто. Вы боитесь октав, но они в значительной степени совпадают с октавами в музыке: только более высокий (или более низкий) частотный шум смешивается с оригинальным выходом. Говоря о нотах, это все равно что играть одновременно на С4 и С5. Это все еще C, но к нему добавлен вкус (небольшие всплески в форме волны). Не бойтесь и продолжайте исследования, это не так сложно.
Относительно черепицы:
Если вы имеете в виду линейную мозаику (как это делает Minecraft), вам просто нужно использовать то же начальное число для алгоритма шума. Как только вы приблизитесь к новым границам, просто сгенерируйте новую порцию данных, и она будет отлично отображаться (как если бы вы бесконечно наполнялись шумом).
Если вы имеете в виду мозаику торов (повторяющиеся мозаики, например, например, Пакмана), я обнаружил, что наилучшим решением является создание шумовой мозаики, а затем интерполяция вблизи границ, как если бы она была мозаичной. Шум будет деформироваться, чтобы соответствовать сторонам, и будет полностью мозаичным.