Format T3D
Plik T3D jest formatem tekstowym, przechowującym informacje o modelach trójwymiarowych. Składa się z dowolnej ilości submodeli określonego typu. Można dołączyć do modelu inne modele za pomoca komendy include.
Spis treści
Typy submodeli
- Mesh - submodel składający się z trójkątów, może być pokryty teksturą.
- FreeSpotLight - Obiekt świecący kierunkowo.
- Stars - zbiór punktów świecących, z czego każdy z nich może mieć inną barwę.
- Point
- Text
Typy Point oraz Text występują w kodzie źródłowym, ale w praktyce nie są spotykane w modelach.
Składnia wpisu submodelu
Wspólne właściwości dla wszystkich typów
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Parent | Przypisuje submodel nadrzędny (rodzica). | Nazwa submodelu | |
Type | Definiuje typ submodelu. | Jedno ze słów kluczowych:
|
|
Name | Unikalna nazwa submodelu | Tekst | Pewne nazwy są zarezerwowane i służą do definiowania dodatkowych funkcjonalności w submodelu. Zobacz listę nazw specjalnych. |
Anim | Typ animacji submodelu. | Tekst | Zobacz listę dostępnych typów animacji. |
Selfillum | Określa sposób emisji światła przez obiekt | Jedno ze słów kluczowych:
lub liczba z zakresu <0;1.25> |
false - brak emisji światła.
true - emisja światła zawsze, niezależnie od poziomu oświetlenia scenerii liczba - określa poziom oświetlenia scenerii, poniżej którego submodel ma emitować światło |
MaxDistance | Określa największą odległość, z jakiej submodel jest widoczny. | Liczba [m] | Aby obiekt był widoczny zawsze, niezależnie od odległości, należy podać wartość -1 |
MinDistance | Określa minimalną odległość, z jakiej submodel jest widoczny | Liczba [m] | |
Transform | Macierz transformacji submodelu | Liczby | TO-DO: Napisać coś o znaczeniu konkretnych liczb |
Właściwości specyficzne dla typu Mesh
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Ambient | Określa jasność submodelu. | 3 liczby RGB z zakresu <0-255> | |
Diffuse | Określa kolor świecenia submodelu. | 3 liczby RGB z zakresu <0-255> | |
Specular | Określa poziom błyszczenia submodelu. | 3 liczby RGB z zakresu <0-255> | |
Wire | Określa, czy zamiast bryły należy rysować siatkę krawędzi | Jedno ze słów kluczowych:
|
Nie działa (?) |
WireSize | Określa grubość krawędzi | Liczba [cm] | Tylko jeśli Wire: true; |
Opacity | Określa sposób renderowania przezroczystości submodelu | Liczba | 0 - renderowanie w fazie przezroczystych
1 - renderowanie w fazie nieprzezroczystych |
Map | Tekstura submodelu. | Ścieżka do tekstury (bez rozszerzenia) | TO-DO: Coś o ścieżce i replacableskinach |
NumVerts | Suma wszystkich wierzchołków w definicjach trójkątów | Liczba |
Pod definicją właściwości NumVerts znajdują się definicje trójkątów (o ile obiekt nie jest tzw. bananem). Ich ilość musi być równa NumVerts / 3. Definicje trójkątów oddzielone są od siebie pustą linią.
Wzór definicji trójkąta:
maska_wygładzania x y z u v x y z u v x y z u v
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
maska_wygładzania | Zapisana dziesiętnie maska bitowa określająca wygładzenie trójkąta. | Liczba | Jeśli w jednym punkcie spotykają się wierzchołki wielu trójkątów, to jeśli mają ustawione wspólne bity w masce, to wektor normalny zostanie wyliczony jako średnia, co da efekt zaokrąglenia w tym wierzchołku. |
x, y, z | Współrzędne wierzchołka w przestrzeni | 3 liczby [m] | |
u, v | Współrzędnie wierzchołka w układzie UV | 2 liczby |
Między współrzędnymi XYZ i UV mogą znajdować się współrzędne wektora normalnego. W praktyce nie stosuje się jawnych wektorów normalnych.
Właściwości specyficzne dla typu FreeSpotLight
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Diffuse | Definiuje kolor świecenia submodelu | 3 liczby RGB z zakresu <0-255> | |
NearAttenStart | Liczba | ||
NearAttenEnd | Liczba | ||
UseNearAtten | Jedno ze słów kluczowych:
|
||
FarAttenDecayType | Liczba | ||
FarDecayRadius | Liczba | ||
FalloffAngle | Określa kąt wygaszenia światła. | Liczba [deg] | |
HotspotAngle | Określa kąt pełnej jasności światła. | Liczba [deg] |
Właściwości specyficzne dla typu Stars
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Diffuse | ? | 3 liczby RGB z zakresu <0-255> | Parametr nieznaczący w kontekście tego submodelu |
NumVerts | Określa ilość punktów świetlnych zawartych w tym submodelu | Liczba |
Pod definicją właściwości NumVerts muszą znaleźć się definicje grup punktów świetlnych. W jednej grupie mogą znaleźć się maksymalnie 3 punkty świetlne.
1 x y z kolor 0 x y z kolor 0 x y z kolor 0
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
1, 0 | Tokeny ignorowane. | Liczby | Zwyczajowo zawsze podaje się 1 i 0. |
x, y, z | Współrzędne punktu w przestrzeni | 3 liczby [m] | |
kolor | Kolor świecenia punktu | Liczba | Zapisana dziesiętnie liczba szesnastkowa opisująca kolor świecenia BGR. |
Point
Obsługa tego submodelu nie została zaimplementowana.