Format SBT: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Format pliku)
(Komórka (cell))
Linia 71: Linia 71:
 
! Opis
 
! Opis
 
|-  
 
|-  
 +
| 24 (3x double)
 +
| Środek bounding boxa
 +
|-
 +
| 4 (1x float)
 +
| Promień bounding boxa
 +
|-
 
| 4 (1x unsigned int)
 
| 4 (1x unsigned int)
| Indeks sekcji
+
| Ilość nieprzezroczystych geometrii w komórce
 +
|-
 +
| nieznany
 +
| Dane geometryczne (shape).
 
|-
 
|-
 
| 4 (1x unsigned int)
 
| 4 (1x unsigned int)
| Rozmiar sekcji w bajtach
+
| Ilość przezroczystych geometrii w komórce
 
|-
 
|-
| 24 (3x double)
+
| nieznany
| Środek bounding boxa
+
| Dane geometryczne (shape).
 
|-
 
|-
 
| 4 (1x unsigned int)
 
| 4 (1x unsigned int)
| Promień bounding boxa
+
| Ilość geometrii linii w komórce
 
|-
 
|-
| 4 (1x unsigned int)
+
| nieznany
| Ilość shape'ów w sekcji
+
| Dane geometryczne (shape).
 
|}
 
|}
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) ===
 
=== Jednostka geometrii (shape node) ===

Wersja z 08:41, 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
4 (4x char) Nagłówek pliku - ciąg znaków "EU07"

Region

W obecnej wersji formatu występuje tylko jeden region. Region grupuje sekcje. W ramach jednego regionu mieści się 500x500 sekcji.

Rozmiar i typ danych Opis
3 (3x string) Nagłówek regionu - ciąg znaków "SBT"
4 (1x unsigned int) Numer wersji formatu (wersji pliku?). Aktualnie exe na stałe wpisuje liczbę 1.
4 (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 i jest podzielna na komórki.

Nagłówek sekcji zawiera następujące dane:

Rozmiar i typ danych Opis
4 (1x unsigned int) Indeks sekcji
4 (1x unsigned int) Rozmiar sekcji w bajtach
24 (3x double) Środek bounding boxa
4 (1x unsigned int) Promień bounding boxa
4 (1x unsigned int) Ilość shape'ów w sekcji

Po nagłówku znajduje się blok zawierający dane geometrii, a za nim - blok zawierający dane komórek. W jednej sekcji występuje 16 komórek.

Komórka (cell)

Komórka jest kwadratowym obszarem o długości boku równej 250m, dzielącym sekcję na 16 mniejszych elementów.

Nagłówek komórki zawiera:

Rozmiar i typ danych Opis
24 (3x double) Środek bounding boxa
4 (1x float) Promień bounding boxa
4 (1x unsigned int) Ilość nieprzezroczystych geometrii w komórce
nieznany Dane geometryczne (shape).
4 (1x unsigned int) Ilość przezroczystych geometrii w komórce
nieznany Dane geometryczne (shape).
4 (1x unsigned int) Ilość geometrii linii w komórce
nieznany Dane geometryczne (shape).

Jednostka geometrii (shape node)