Symulator EU07 (i nie tylko) > Poszukuję, chcę zrobić

 "Konkurs" na połączenie scenerii

<< < (6/7) > >>

pol102:

--- Cytuj ---Komórka ¶

Komórka scenerii jest najmniejszym obszarem, jaki może obsługiwać serwer ruchu, a jednocześnie minimalną przestrzenią zdarzeń, synchronizowaną między serwerem a użytkownikiem. Komórka ma własny, lokalny układ współrzędnych, którego początek jest w pobliżu geometrycznego środka komórki. Ze względu na dokładność liczb typu single float, średnica komórki nie powinna przekraczać 16km (błąd zaokrągleń rzędu 1mm w maksymalnej odległości od środka układu współrzędnych).

Komórki należy tak wydzielać, aby cała stacja mieściła się w jednej komórce, a połączenie z inną komórką było w miejscu o minimalnej infrastrukturze. Przesyłanie danych pomiędzy komórkami powinno być ograniczone do minimum (informacje o stanie szlaku łączącego i pociągu na nim).

Miejsce w pobliżu łączenia komórek nazywa się obszarem buforowym. Pojazd w obszarze buforowym jest widoczny jednocześnie w obu komórkach. Nie jest wskazane wykonywanie manewrów w obszarze buforowym.

Logowanie ¶

Następnie użytkownik loguje się do komórki początkowej (ewentualnie od razu do kolejnej). Po zalogowaniu przekazywany jest stan infrastruktury tej komórki (położenie zwrotnic, wskazania semaforów, zamknięcie przejazdów, świecenie lamp, własności torowiska związane z warunkami atmosferycznymi) oraz informacje o innych pojazdach znajdujących się w tej komórce. Uwzględniając te informacje, użytkownik renderuje komórkę u siebie.
Połączenia ¶

Każda komórka wskazuje na co najmniej jedną inną komórkę, która jest z nią połączona w ściśle określonych punktach. Aby móc przemieścić się do sąsiedniej komórki, należy się wcześniej do niej zalogować. Przy prędkości jazdy rzędu 160km/h i średnicy komórek 16km, wymagane jest logowanie się do 10 kolejnych komórek w ciągu godziny, czyli przelogowanie do kolejnej wykonywane jest co około 6 minut. Z komórki można wylogować się po opuszczeniu obszaru buforowego komórki docelowej. W przypadku niemożności zalogowania do kolejnej komórki, pojazd zostaje zatrzymany w obszarze buforowym i może się tylko cofnąć. Dalsza jazda nie jest możliwa do czasu przywrócenia serwera obsługującego komórkę lub zorganizowania objazdu.
--- Koniec cytatu ---

El Mecánico:

--- Cytuj ---Ze względu na dokładność liczb typu single float...
--- Koniec cytatu ---
Co wy macie z tym minimalizmem typów liczbowych? Komputer dzisiaj to nie C64, można spokojnie dać double float.

ShaXbee:
Tu nie chodzi o dokładność, ale o rozmiar scenerii - zapisanie wszystkiego w double zwiększy objętość pliku dwukrotnie. Po to komórki mają max 16km żeby dokładność float'a starczyła.

El Mecánico:
A tak pi razy drzwi, ile przy zastosowaniu singla miała by taka średnia sceneria wagi?

ShaXbee:
Ponieważ przeważająca część scenerii będzie miała tory położone flexami to można przyjąć rozdzielczość 200 punktów na km - to daje 200x3x4=2400 bajtów na kilometr szlaku, przy łącznej długości wszystkich torów rzędu 200km mamy 200x2400 ~ 470kb na szlak - to niewiele.
Gorzej jest z położeniem obiektów w scenerii, każdy obiekt ma przypisaną macierz przekształcenia o rozmiarze 4x4, przyjmując że sceneria będzie miała około 10000 różnych obiektów (lasy, semafory, budynki, trakcja etc) daje nam to 625kb na obiekty. Tak czy inaczej sceneria jest podzielona na komórki w celu dynamicznego doładowywania i sterowania ruchem więc użycie floatów nic nie kosztuje a daje nam kompresje rzędu 40% za darmo (poza współrzędnymi zapisujemy też różnego rodzaju identyfikatory).

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod