przechowywanie tylko widocznej części mapy
Ostatnio zmodyfikowano 2014-04-18 18:19
qest43 Temat założony przez niniejszego użytkownika |
przechowywanie tylko widocznej części mapy » 2014-04-18 16:59:50 Mam problem z optymalizacją, mianowicie nie wiem jak przechowywać w pamięci, w tablicy tylko tę część mapy wczytywanej z pliku, by była to tylko ta widoczna. |
|
MrPoxipol |
» 2014-04-18 17:01:20 Dynamicznie ładuj mapę i usuwaj kiedy już nie jest potrzebna. |
|
pekfos |
» 2014-04-18 17:38:47 Po co taka optymalizacja? Pamięci obecnie jest dużo, a mapa zwykle wiele nie zajmuje. Jeśli jest inaczej, to albo powinieneś szukać optymalizacji pamięci w formacie mapy, lub dzielić mapę na części i ładować po kilka. |
|
qest43 Temat założony przez niniejszego użytkownika |
» 2014-04-18 17:49:21 A no dlatego, ze obecnie działa to tak, pobieram długość i szerokość mapy, np. 1000 na 1000. Przepuszczam przez pętle for tablicę VECTORów, 1000x1000 razy. Jest to vector typu jeden z klas, więc zajmuje dużo miejsca w pamięci, przy mapie wielkości 5000x5000 program już się zawiesza, jest to przecież 25000000 elementów w pamięci. Strasznie dużo to pamięci zajmuję, i wydaje mi się, że w grach inaczej się takie mapy wczytuję. |
|
pekfos |
» 2014-04-18 18:19:11 Podziel mapę na małe części. Np 512x512 (256kB na każdy bajt zajmowany przez jednostkę mapy). Wtedy możesz załadować np obszar 3x3 złożony z takich fragmentów, gdzie gracz jest w środkowym. Gdy przechodzi do jednego z 8 załadowanych (i pokonuje pewien dystans), tworzysz nowe 3x3, usuwając część poprzednich i kilka nowych fragmentów. W ten sposób nie ładujesz nie wiadomo jak często nie wiadomo jakich ilości danych z dysku (który jest wolny). |
|
« 1 » |