Имеется конечный 2d мир, состоящий из чанков, каждый из которых содержит в себе 16x16 тайлов. Размер мира - до 32к на 16к тайлов. Для генерации использую шум перлинга. Мир генерируется не весь сразу, а по мере передвижения игрока. Существуют различные биомы, у каждого из которых имеется некоторый набор тайлов. Например: почва тундры, песок пустыни и так далее.
И необходимо на определённых тайлах расставить объекты с какой-то минимальной дистанцией между друг другом, да так, что бы в определённых участках, задаваемых специальной картой плотности, эту дистанцию можно было менять. Для этих целей вполне себе может подойти алгоритм Poisson Disk, и я даже его реализовал:
Однако, есть проблема. Для работы алгоритма необходимо задать ширину и высоту рабочей области, а я не могу себе позволить генерировать poisson disk для всей карты, потому что она достаточно большая и на генерацию уйдёт непростительно много времени. Мне же необходимо генерировать маленькие кусочки карты, да так, чтобы при повторной генерации одного куска, результат не изменился, и между данным куском и остальными не было заметно швов. Можно ли модифицировать алгоритм Poisson Disk для решения этой задачи, или необходимо искать другой вариант? Если да, то какой?