Dibujaría un único quad con textura en el suelo (es decir, acostado en el plano XZ), tan grande como debería ser el área visible, y luego jugaría con las coordenadas de textura de los vértices (con el modo de direccionamiento de textura configurado para ajustarse ) para se ocupa automáticamente tanto de la repetición de textura como del desplazamiento de textura .
- Para la repetición en lugar de establecer su coordenada de textura vertical de [0 a 1], configúrela de [0 a N] donde N es el número de veces que desea que se repita la textura. Ajuste este valor según la altura de su quad en comparación con la altura de su textura.
- Para desplazarme , simplemente desplazaría la coordenada de textura vertical, de modo que en lugar de oscilar entre [0 y N] oscile entre [inc y N + inc] con el valor de inc incrementado o decrementado cada cuadro. De vez en cuando, envuelvo inc nuevamente al origen para evitar el desbordamiento / subflujo.
EDITAR Intenté implementar esto exactamente como lo describí (pero en XNA) y funcionó bastante bien. Vea este video de la demostración. Código fuente aquí para los interesados.
Por ejemplo, con N igual a 3, obtendría algo parecido a la imagen a continuación (he pintado la sección central en rojo para que pueda ver dónde se produce la repetición). Luego, simplemente cambiando el valor de inc haría que la carretera se desplace en una dirección u otra, dependiendo de si la incrementó o disminuyó.