Самый простой вариант - накладывать несколько текстур по маске. То есть, нужен шейдер, который будет микшировать несколько текстур в зависимости от одной управляющей. В этом случае управляющая текстура с масками должна быть уникальной для всей карты, а остальные текстуры могут повторяться произвольное количество раз.
Тут неплохая статья по микшированию текстур ландшафта в Юнити. Основы шейдеров должны быть одинаковыми и для ThreeJS.