Je dessinerais un seul quadruple texturé sur le sol (c'est-à-dire allongé sur le plan XZ), aussi grand que la zone visible devrait être, puis je jouerais avec les coordonnées de texture des sommets (avec le mode d'adressage de texture réglé sur envelopper ) afin de s'occupe automatiquement de la répétition de la texture et du défilement de la texture .
Pour la répétition au lieu de définir votre coordonnée de texture verticale de [0 à 1], définissez-la de [0 à N] où N est le nombre de fois que vous souhaitez que la texture se répète. Ajustez cette valeur en fonction de la hauteur de votre quad par rapport à la hauteur de votre texture.
Pour faire défiler, je ferais simplement défiler la coordonnée verticale de la texture, de sorte qu'au lieu de [0 à N], elle irait de [inc à N + inc], la valeur de inc étant incrémentée ou décrémentée à chaque image. De temps en temps, j'enroulais inc à l'origine pour éviter les débordements / débordements.
EDIT J'ai juste essayé de l'implémenter exactement comme je l'ai décrit (mais dans XNA) et cela a très bien fonctionné. Voir cette vidéo de la démo. Code source ici pour les personnes intéressées.
Par exemple, avec N égal à 3, vous obtiendrez quelque chose comme l'image ci-dessous (j'ai peint la section centrale en rouge pour que vous puissiez voir où la répétition se produit). Ensuite, changer simplement la valeur de inc ferait défiler la route dans un sens ou dans l'autre, selon que vous l'avez incrémentée ou décrémentée.
La même technique peut être utilisée pour simuler l'animation des fils de cuve. Bien sûr, cela ne sera pas utilisable si vous modélisez chaque segment de chaîne ...
Exilyth
1
Si vous voulez créer une route sans fin "pour de vrai", vous créez trois surfaces et les faites boucler lorsque chaque surface se déplace hors de la vue. Placez les surfaces bout à bout dans l'espace mondial et déplacez-les toutes vers la caméra. Lorsque l'extrémité la plus proche se déplace hors de la caméra, réinitialisez sa position à l'extrémité de la surface la plus éloignée.
Si vous souhaitez l'implémenter comme un sprite avec l'illusion du mouvement, vous devez créer un certain nombre de textures différentes, qui devraient ressembler à ceci:
Au fur et à mesure que la vue avance, parcourez les textures dans l'ordre.
La répétition de l'image est une bonne idée. Déterminez combien de répétitions doivent être visibles à l'écran et dessinez l'image autant de fois. Au fur et à mesure que la route défile, il y aura un point où une image sera complètement derrière la caméra et donc invisible. À ce stade, vous souhaitez déplacer cette image de l'arrière de vos pieds vers l'extrémité de votre bande d'images finies.
Pendant que nous y sommes, vous en tirerez le meilleur effet en imitant la perspective instable d'un homme qui court. Enregistrez un film de vous en train de courir du point de vue de vos yeux et étudiez-le.
Si vous voulez créer une route sans fin "pour de vrai", vous créez trois surfaces et les faites boucler lorsque chaque surface se déplace hors de la vue. Placez les surfaces bout à bout dans l'espace mondial et déplacez-les toutes vers la caméra. Lorsque l'extrémité la plus proche se déplace hors de la caméra, réinitialisez sa position à l'extrémité de la surface la plus éloignée.
Si vous souhaitez l'implémenter comme un sprite avec l'illusion du mouvement, vous devez créer un certain nombre de textures différentes, qui devraient ressembler à ceci:
Au fur et à mesure que la vue avance, parcourez les textures dans l'ordre.
la source
La répétition de l'image est une bonne idée. Déterminez combien de répétitions doivent être visibles à l'écran et dessinez l'image autant de fois. Au fur et à mesure que la route défile, il y aura un point où une image sera complètement derrière la caméra et donc invisible. À ce stade, vous souhaitez déplacer cette image de l'arrière de vos pieds vers l'extrémité de votre bande d'images finies.
Pendant que nous y sommes, vous en tirerez le meilleur effet en imitant la perspective instable d'un homme qui court. Enregistrez un film de vous en train de courir du point de vue de vos yeux et étudiez-le.
la source