Saya akan menggambar quad bertekstur tunggal di tanah (yaitu berbaring di bidang XZ), sebesar area yang terlihat, dan kemudian bermain-main dengan koordinat tekstur simpul (dengan mode pengalamatan tekstur diatur untuk membungkus ) untuk secara otomatis menangani pengulangan tekstur dan pengguliran tekstur .
- Untuk pengulangan alih-alih mengatur koordinat tekstur vertikal Anda dari [0 ke 1], atur dari [0 ke N] di mana N adalah berapa kali Anda ingin mengulangi tekstur. Sesuaikan nilai ini tergantung pada seberapa tinggi quad Anda dibandingkan dengan tinggi tekstur Anda.
- Untuk menggulir, saya cukup menggulir koordinat tekstur vertikal, jadi alih-alih mulai dari [0 ke N] itu akan berkisar dari [inc ke N + inc] dengan nilai inc yang bertambah atau mengurangi setiap frame. Dari waktu ke waktu saya akan membungkus inc ke asal untuk mencegah overflow / underflow.
EDIT Saya baru saja mencoba mengimplementasikan ini persis seperti yang saya jelaskan (tetapi dalam XNA) dan itu bekerja dengan cukup baik. Lihat video demo ini. Kode sumber di sini untuk mereka yang tertarik.
Misalnya, dengan N sama dengan 3 Anda akan mendapatkan sesuatu seperti gambar di bawah ini (saya telah melukis bagian tengah berwarna merah sehingga Anda dapat melihat di mana pengulangan terjadi). Kemudian, hanya dengan mengubah nilai inc akan membuat gulir jalan di satu arah atau yang lain, tergantung pada apakah Anda menambah atau mengurangi itu.