Autor Wątek: Przechowywanie Terenu  (Przeczytany 802 razy)

Offline Gifanonim

  • Użytkownik
    • HomePage

# Luty 12, 2011, 22:25:14
Witam,

Ostatnio trochę walczyłem z wyświetlaniem terenu bo pisałem inżynierkę z tego i o ile samo wyświetlanie dość dobrze mi idzie tak teraz zacząłem się zastanawiać nad przechowywaniem tego. Na potrzeby testów wydajnościowych w inż. ładowałem olbrzymią height mapę do pamięci i ją wyświetlałem.

Ale jak łatwo się domyślić nie jest to optymalne rozwiązanie, dlatego też jestem ciekaw jak wy sobie radzicie z olbrzymimi terenami?

Podczas swoich rozważań wysnuły mi się dwa pomysły i po szybkiej analizie zauważyłem, że oba są wykorzystywane nawet równocześnie, mianowicie:
  • podzielenie terenu na mniejsze sektory i dynamiczne doczytywanie z dysku.
  • przechowywanie mniej dokładnej siatki i dynamiczna interpolacja wysokości w brakujących miejscach jeśli jest taka potrzeba (tutaj np. w najdokładniejszej clipmapie).

Ale, że czuje ciągły niedosyt informacji, chciałbym się dowiedzieć z czego i w jaki sposób wy korzystacie?

Mianowicie jeśli np. używacie ROAM to jak sobie radzicie.
No i oczywiście ogólnie jakie sztuczki wykorzystujecie, żeby mieć jak największy teren nie dostając równocześnie informacji, że system nie może wam przydzielić więcej ramu?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline _OskaR

  • Użytkownik

# Luty 12, 2011, 22:49:54
Można generować teren realtime na GPU z różnymi LODami i w pamięci GPU również go przechowywać. Dysk niepotrzebny. Oczywiście wtedy nie przewidzisz, gdzie znajdzie się rzeczka, a gdzie górka, ale teren będzie zróżnicowany (przy odpowiednich algorytmach).
Jeśli chodzi o zużycie pamięci - można ją np. przydzielić na stałe i tylko modyfikować zawartość. Poza tym, wiadomo, ile zajmuje float czy int, więc też można co nieco przewidzieć.
« Ostatnia zmiana: Luty 12, 2011, 22:52:04 wysłana przez _OskaR »