Я бы нарисовал один текстурированный квад на земле (т.е. лежащий на плоскости XZ), размером с видимую область, и затем поиграл с координатами текстуры вершин (с режимом адресации текстуры, установленным на обтекание ), чтобы автоматически заботиться как о повторении текстур, так и о прокрутке текстур .
- Для повторения вместо установки вашей вертикальной координаты текстуры от [0 до 1], установите ее от [0 до N], где N - количество повторений текстуры. Отрегулируйте это значение в зависимости от того, какой у вас рост по сравнению с вашей высотой текстуры.
- Для прокрутки я бы просто прокрутил вертикальную координату текстуры, чтобы вместо диапазона от [0 до N] он варьировался от [inc до N + inc], при этом значение inc увеличивалось или уменьшалось в каждом кадре. Время от времени я бы оборачивал inc обратно в начало координат, чтобы предотвратить переполнение / переполнение.
РЕДАКТИРОВАТЬ Я только что попытался реализовать это точно так, как я описал (но в XNA), и это работало довольно хорошо. Смотрите это видео демо. Исходный код здесь для интересующихся.
Например, при N, равном 3, вы получите что-то похожее на изображение ниже (я нарисовал среднюю часть красным, чтобы вы могли видеть, где происходит повторение). Затем простое изменение значения inc приведет к прокрутке дороги в одном или другом направлении, в зависимости от того, увеличивали ли вы его или уменьшали.