Format SBT: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Region)
(Sekcja (section))
Linia 37: Linia 37:
  
 
=== Sekcja (section) ===
 
=== Sekcja (section) ===
 
+
Sekcje są podstawową jednostką podziału scenerii na fragmenty. Sekcja jest kwadratem o długości boku równej 1000m.
Sekcje zapisane jedna za drugą, a każda z nich zaczyna się od:
 
  
 
1. Indeksu sekcji (unsigned int, 4 bajty)
 
1. Indeksu sekcji (unsigned int, 4 bajty)
Linia 48: Linia 47:
 
Po tych danych zapisane są dane shape'ów.
 
Po tych danych zapisane są dane shape'ów.
 
Za shape'ami zapisane są dane komórek.
 
Za shape'ami zapisane są dane komórek.
 
  
 
=== Komórka (cell) ===
 
=== Komórka (cell) ===

Wersja z 07:57, 31 maj 2022

Informacje ogólne

Plik SBT (Scenery Binary Terrain) jest plikiem binarnym zawierającym dane terenu. Dane te są podzielone na sekcje, co w zamyśle ma umożliwić szybsze wczytywanie scenerii i jej dynamiczne ładowanie bez potrzeby wczytywania całej scenerii do pamięci, jak to ma miejsce w przypadku plików tekstowych.

Plik tworzony jest podczas wczytywania scenariusza. Wszystkie trójkąty terenu oraz linie z plików tekstowych (SCN, SCM, INC) są w ramach sekcji łączone w większe grupy siatek i w tej formie zapisywane do pliku SBT. Późniejsze ładowanie tego samego scenariusza będzie już używało danych z pliku SBT, a co za tym idzie - wczytywanie będzie dużo szybsze.

Ponieważ nie istnieje sposób na rozpoznanie, które scenariusze korzystają z takiego samego terenu i otoczenia, plik SBT tworzony jest osobno dla każdego scenariusza.

Generowanie plików SBT można wyłączyć wpisem w eu07.ini

file.binary.terrain no

Format pliku

Na początku pliku znajduje się nagłówek pliku.

Rozmiar i typ danych Opis
32 (4x string) Nagłówek pliku - ciąg znaków "EU07"

Region

Region przechowuje sekcje. W obecnej wersji formatu występuje tylko jeden region.

Rozmiar i typ danych Opis
24 (3x string) Nagłówek regionu - ciąg znaków "SBT"
8 (1x unsigned int) Numer wersji formatu (wersji pliku?). Aktualnie exe na stałe wpisuje liczbę 1.
8 (1x unsigned int) Liczba sekcji w regionie

Sekcja (section)

Sekcje są podstawową jednostką podziału scenerii na fragmenty. Sekcja jest kwadratem o długości boku równej 1000m.

1. Indeksu sekcji (unsigned int, 4 bajty)

2. Rozmiaru sekcji (unsigned int, 4 bajty)

3. Ilości shape'ów w sekcji (unsigned int, 4 bajty)

Po tych danych zapisane są dane shape'ów. Za shape'ami zapisane są dane komórek.

Komórka (cell)

Komórki zapisane są jedna za drugą, a każda z nich zaczyna się od:

1. Centrum bounding boxa (3 liczby double)

2. Promienia bounding boxa (float, 4 bajty)

3. Ilości nieprzezroczystych shape'ów w komórce (unsigned int, 4 bajty)

Tutaj zapisane są dane shape'ów.

4. Ilości przezroczystych shape'ów w komórce (unsigned int, 4 bajty)

Tutaj zapisane są dane shape'ów.

5. Ilości lines w komórce (unsigned int, 4 bajty)

Tutaj zapisane są dane shape'ów

Jednostka geometrii (shape node)