Jak mógłbym wdrożyć niekończącą się drogę, po której biegnie gracz?

Odpowiedzi:

16

Narysowałbym pojedynczy teksturowany quad na ziemi (tj. Leżący na płaszczyźnie XZ), tak duży, jak powinien być widoczny obszar, a następnie bawiłem się współrzędnymi tekstury wierzchołków (z trybem adresowania tekstury ustawionym na zawijanie ), aby automatycznie zajmie się zarówno powtarzaniem tekstur, jak i przewijaniem tekstur .

  1. Aby powtórzyć zamiast ustawiać pionową współrzędną tekstury od [0 do 1], ustaw ją od [0 do N], gdzie N jest liczbą powtórzeń tekstury. Dostosuj tę wartość w zależności od wysokości quada w porównaniu do wysokości tekstury.
  2. Do przewijania przewijałem po prostu pionową współrzędną tekstury, tak aby zamiast wahać się od [0 do N], mieściłby się w zakresie od [inc do N + inc], a wartość inc była zwiększana lub zmniejszana dla każdej klatki. Od czasu do czasu zawijałem inc z powrotem do źródła, aby zapobiec przepełnieniu / niedopełnieniu.

EDYCJA Właśnie próbowałem wdrożyć to dokładnie tak, jak to opisałem (ale w XNA) i działało całkiem dobrze. Zobacz ten film demonstracyjny. Kod źródłowy tutaj dla zainteresowanych.


Na przykład, przy N równym 3, otrzymasz coś takiego jak na poniższym obrazku (środkową część pomalowałem na czerwono, abyś mógł zobaczyć, gdzie występuje powtórzenie). Następnie po prostu zmiana wartości inc spowoduje, że droga przewinie się w jednym lub drugim kierunku, w zależności od tego, czy ją zwiększyłeś, czy zmniejszyłeś.

wprowadź opis zdjęcia tutaj

David Gouveia
źródło
Tej samej techniki można użyć do sfałszowania animacji wątków czołgów. Oczywiście nie będzie użyteczna, jeśli modelujesz każdy segment łańcucha ...
Exilyth
1

Jeśli chcesz stworzyć nieskończoną drogę „na prawdę”, tworzysz trzy powierzchnie i zapętlasz je, gdy każda powierzchnia przesuwa się poza pole widzenia. Umieść powierzchnie od końca do końca w przestrzeni świata i przesuń je wszystkie w kierunku kamery. Gdy najbliższy koniec odsunie się od kamery, zresetuj jego położenie do końca najdalszej powierzchni.

Jeśli chcesz wdrożyć go jako duszka z iluzją ruchu, musisz utworzyć wiele różnych tekstur, które powinny wyglądać mniej więcej tak:

Gdy widok przesuwa się do przodu, zapętlaj kolejno tekstury.

Kitt Basch
źródło
0

Powtarzanie obrazu to dobry pomysł. Sprawdź, ile powtórzeń musi być widocznych na ekranie, i narysuj obraz tyle razy. W miarę przesuwania się drogi będzie punkt, w którym jedno zdjęcie będzie całkowicie za kamerą, a tym samym niewidoczne. W tym momencie chcesz przenieść ten obraz zza twoich stóp na drugi koniec skończonego paska obrazu.

Skoro już to robimy, uzyskasz z tego najlepszy efekt, naśladując niepewną perspektywę uciekającego mężczyzny. Nagraj film przedstawiający cię z perspektywy oczu i przestudiuj go.

Stefan Majewsky
źródło
2
To tak naprawdę nie działa, ponieważ jego wizerunek jest perspektywiczny. Potrzebowałby różnych obrazów, aby grać jako animacja.
Bobby