Format T3D: Różnice pomiędzy wersjami
(→Wspólne właściwości dla wszystkich typów) |
(→Składnia wpisu submodelu) |
||
Linia 45: | Linia 45: | ||
| '''Selfillum''' | | '''Selfillum''' | ||
| Określa sposób emisji światła przez obiekt | | Określa sposób emisji światła przez obiekt | ||
− | | Jedno | + | | Jedno ze słów kluczowych: |
* true | * true | ||
* false | * false | ||
Linia 74: | Linia 74: | ||
==== Mesh ==== | ==== Mesh ==== | ||
− | + | {| class="wikitable" | |
− | + | |+ Wspólne właściwości dla wszystkich typów submodeli | |
− | + | ! Nazwa właściwości | |
− | + | ! Znaczenie | |
− | + | ! Typ wartości | |
− | * '''WireSize''' | + | ! 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 | ||
+ | | 3 liczby RGB z zakresu <0-255> | ||
+ | | Jedno ze słów kluczowych: | ||
+ | * true | ||
+ | * false | ||
+ | | 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 | ||
+ | | 3 liczby RGB z zakresu <0-255> | ||
+ | | Liczba | ||
+ | | '''0''' - renderowanie w fazie przezroczystych | ||
+ | |||
+ | '''1''' - renderowanie w fazie nieprzezroczystych | ||
+ | |} | ||
+ | |||
* '''Map''' - ścieżka do tekstury (bez jej rozszerzenia), relatywna względem głównego folderu symulatora. Można wpisać słowo kluczowe '''replacableskin''', wtedy zyskujemy możliwość podstawienia w to miejsce dowolnej tekstury, podanej we wpisie '''node... model''' | * '''Map''' - ścieżka do tekstury (bez jej rozszerzenia), relatywna względem głównego folderu symulatora. Można wpisać słowo kluczowe '''replacableskin''', wtedy zyskujemy możliwość podstawienia w to miejsce dowolnej tekstury, podanej we wpisie '''node... model''' | ||
Wersja z 17:16, 6 gru 2017
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 typów
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 | 3 liczby RGB z zakresu <0-255> | 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 | 3 liczby RGB z zakresu <0-255> | Liczba | 0 - renderowanie w fazie przezroczystych
1 - renderowanie w fazie nieprzezroczystych |
- Map - ścieżka do tekstury (bez jej rozszerzenia), relatywna względem głównego folderu symulatora. Można wpisać słowo kluczowe replacableskin, wtedy zyskujemy możliwość podstawienia w to miejsce dowolnej tekstury, podanej we wpisie node... model
Oprócz tego, na samym końcu definicji submodelu należy umieścić właściwość z wartością liczbową równą ilości wierzchołków w submodelu:
NumVerts: suma_wierzchołków_wszystkich_trójkątów
A pod spodem definicje trójkątów. Ich ilość musi być równa NumVerts / 3, a definicje zaleca się oddzielić 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
- maska_wygładzania - zapisana dziesiętnie maska bitowa. Jeśli w jednym punkcie spotykają się wierzchołki wielu trójkątów, to jeśli mają ustawione wspólne bity w masce (w notacji C++: x & y != 0) , 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
- u, v - współrzędnie wierzchołka w układzie UV (odpowiadają za układ tekstury)
Między współrzędnymi XYZ i UV można podać współrzędne wektora normalnego, aczkolwiek w żadnym z modeli nie są one jawnie zdefiniowane.
FreeSpotLight
- Diffuse - 3 liczby <0-255> (RGB) oddzielone spacją, definiujące kolor świecenia submodelu.
- SelfIllum - wartość logiczna true/false. Określa, czy submodel ma emitować światło.
- NearAttenStart - wartość liczbowa, parametr ignorowany.
- NearAttenEnd - wartość liczbowa, parametr ignorowany.
- UseNearAtten - wartość logiczna true/false, parametr ignorowany.
- FarAttenDecayType - wartość liczbowa, parametr ignorowany.
- FarDecayRadius - wartość liczbowa, parametr ignorowany.
- FalloffAngle - wartość liczbowa. Określa kąt wygaszenia światła.
- HotspotAngle - wartość liczbowa. Określa kąt pełnej jasności światła.
Stars
- Diffuse - parametr nieznaczący (?)
- SelfIllum - wartość logiczna true/false. Określa, czy submodel ma emitować światło.
Po właściwości Transform występuje właściwość NumVerts opisująca ilość punktów świetlnych. Poniżej tej właściwości muszą wystąpić definicje punktów świetlnych (analogicznie jak trójkąty w przypadku typu Mesh)
1 x y z kolor 0 x y z kolor 0 x y z kolor 0
- 1, 0 - tokeny ignorowane, nieistotne z punktu widzenia symulacji
- x, y, z - współrzędne punktu w przestrzeni 3D
- kolor - zapisana dziesiętnie liczba szesnastkowa opisująca kolor świecenia BGR.