Format T3D: Różnice pomiędzy wersjami
(→Mesh) |
(→Mesh) |
||
Linia 73: | Linia 73: | ||
|- | |- | ||
| '''Selfillum''' | | '''Selfillum''' | ||
− | | Określa | + | | Określa próg [[Poziom oświetlenia|poziomu oświetlenia scenerii]], poniżej którego submodel ma emitować światło. |
− | + | Jest to liczba z zakresu <-1;2>, ale można również podać słowa kluczowe: | |
− | + | * '''true''' - odpowiada wartości 2 (emisja światła przez cały czas) | |
− | + | * '''false''' - odpowiada wartości -1 (brak emisji światła) | |
− | |||
− | ''' | ||
− | |||
− | '''false''' - | ||
− | |||
− | |||
|- | |- | ||
| '''Wire''' | | '''Wire''' | ||
− | | | + | | Tryb renderowania siatki. |
− | + | * '''true''' - renderowanie krawędzi | |
− | * true | + | * '''false''' - renderowanie geometrii w normalny sposób |
− | * false | + | <span style="color:red;font-weight:bold">Ta właściwość nie działa.</span> |
− | |||
|- | |- | ||
| '''WireSize''' | | '''WireSize''' | ||
− | | Określa grubość krawędzi | + | | Określa grubość krawędzi, gdy Wire = true. |
− | + | <span style="color:red;font-weight:bold">Ta właściwość nie działa.</span> | |
|- | |- | ||
| '''Opacity''' | | '''Opacity''' | ||
| Określa sposób renderowania [[Przezroczystość|przezroczystości]] | | Określa sposób renderowania [[Przezroczystość|przezroczystości]] | ||
− | + | * '''1''' - tryb nieprzezroczysty | |
− | '''1''' - | + | * '''mniej niż 1''' - tryb przezroczysty |
− | |||
− | ''' | ||
|- | |- | ||
| '''Map''' | | '''Map''' | ||
Linia 109: | Linia 100: | ||
|- | |- | ||
| '''MaxDistance''' | | '''MaxDistance''' | ||
− | | Określa największą odległość, z jakiej submodel jest widoczny.Aby obiekt był widoczny zawsze | + | | Określa największą odległość, z jakiej submodel jest widoczny. Aby obiekt był widoczny zawsze, należy podać wartość '''-1''' |
|- | |- | ||
| '''MinDistance''' | | '''MinDistance''' | ||
− | | Określa minimalną odległość, z jakiej submodel jest widoczny | + | | Określa minimalną odległość, z jakiej submodel jest widoczny. |
|- | |- | ||
| '''Transform''' | | '''Transform''' |
Wersja z 16:35, 20 sty 2023
Plik T3D jest plikiem tekstowym, przechowującym informacje o modelach trójwymiarowych.
Model składa się submodeli złożonych w hierarchiczną strukturę w relacji rodzic-dziecko.
Składnia definicji submodeli
Przyjęło się, że definicja każdego submodelu poprzedzona jest komentarzem liniowym złożonym z 81 znaków minus (-). Umożliwia to wizualne oddzielenie definicji w pliku tekstowym i jest używane również przez style edytorów tekstowych do zawijania bloków definicji.
Mesh
Przykładowa definicja submodelu typu Mesh:
//--------------------------------------------------------------------------------- Parent: domek Type: Mesh Name: dach Anim: false Ambient: 255 255 255 Diffuse: 255 255 255 Specular: 3 3 3 SelfIllum: false Wire: false WireSize: 1 Opacity: 1 Map: roof/papa MaxDistance: 2500 MinDistance: 0 Transform: 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 NumVerts: 3879 0 4.85 -1.0992 9.7 0.43468 0.29718 4.85 11.09921 9.9 0.56421 0.29506 4.85 11.09921 9.7 0.56421 0.29732 0 4 4.35 4.25 0.27015 0.46583 3.8 5.65 4.25 0.34553 0.47271 3.8 4.35 4.25 0.27015 0.47271 [...]
Nazwa właściwości | Znaczenie | |
---|---|---|
Parent | Nazwa submodelu nadrzędnego w hierarchii (rodzica) lub none jeśli brak takowego.
Submodel nadrzędny musi wystąpić przed definicją submodelu podrzędnego, w przeciwnym wypadku submodel będzie umieszczony poza hierarchią. | |
Type | Typ submodelu. W przypadku tego typu - zawsze Mesh. | |
Name | Nazwa submodelu. Powinna być niepowtarzalna w obrębie jednego pliku, chyba że submodel jest emiterem dymu. | |
Anim | Typ animacji submodelu. (Zobacz listę typów animacji) | |
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> | |
Selfillum | Określa próg poziomu oświetlenia scenerii, poniżej którego submodel ma emitować światło.
Jest to liczba z zakresu <-1;2>, ale można również podać słowa kluczowe:
| |
Wire | Tryb renderowania siatki.
Ta właściwość nie działa. | |
WireSize | Określa grubość krawędzi, gdy Wire = true.
Ta właściwość nie działa. | |
Opacity | Określa sposób renderowania przezroczystości
| |
Map | Ścieżka do materiału (bez rozszerzenia).
Pierwszy przebieg wyszukiwania w katalogu równorzędnym modelowi, drugi w roocie textures. Można podać tekstury wymienne, podstawiane parametrem w node model/dynamic. Wtedy dajemy wartość replacableskin lub jeśli model używa kilku tekstur wymiennych, indeks tekstury poprzedzony minusem (-1÷-4) | |
MaxDistance | Określa największą odległość, z jakiej submodel jest widoczny. Aby obiekt był widoczny zawsze, należy podać wartość -1 | |
MinDistance | Określa minimalną odległość, z jakiej submodel jest widoczny. | |
Transform | Macierz transformacji submodelu | |
NumVerts | Suma wszystkich wierzchołków w definicjach trójkątów |
Pod definicją właściwości NumVerts znajdują się definicje trójkątów. Ich ilość musi być równa NumVerts / 3. przyjęło się oddzielać definicje trójkątów 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] | Symulator korzysta z prawoskrętnego układu współrzędnych! |
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 IJK wektora normalnego. Maska wygładzania przyjmuje wtedy wartość -1:
-1 x y z i j k u v x y z i j k u v x y z i j k u v
Opcjonalną formą zapisu geometrii jest użycie chmury punków oraz listy indeksów. Chmura punktów definiuje wierzchołki o unikatowych właściwościach. W liście indeksów każde kolejne 3 liczby określają, których wierzchołków użyć do stworzenia trójkąta.
NumIndices: ilosc_indeksow indeks1 indeks2 indeks3 // etc NumVerts: ilosc_wierzcholkow Px Py Pz Nx Ny Nz Ux Uy Tx Ty Tz Tw // pozycja, wektor normalny, koordynaty UV, tangent Px Py Pz Nx Ny Nz Ux Uy Tx Ty Tz Tw // etc
FreeSpotLight
//--------------------------------------------------------------------------------- Parent: light_on00 Type: FreeSpotLight Name: Spot Anim: false Diffuse: 214 210 111 SelfIllum: 1 NearAttenStart: 40 NearAttenEnd: 0 UseNearAtten: false FarAttenDecayType: 1 FarDecayRadius: 25 FalloffAngle: 228.1917 HotspotAngle: 150.9 MaxDistance: -1 MinDistance: 0 Transform: 0.37858 0 0.92557 0 0 1 0 0 -0.92557 0 0.37858 0 3.6259 0.35966 5.18991 1
Nazwa właściwości | Znaczenie | Typ wartości | Uwagi |
---|---|---|---|
Diffuse | Definiuje kolor świecenia submodelu | 3 liczby RGB z zakresu <0-255> | |
NearAttenStart | Liczba | Brak funkcjonalności w exe | |
NearAttenEnd | Liczba | Brak funkcjonalności w exe | |
UseNearAtten | Jedno ze słów kluczowych:
|
Brak funkcjonalności w exe | |
FarAttenDecayType | Typ zaniku natężenia światła | Liczba |
|
FarDecayRadius | Liczba | Brak funkcjonalności w exe | |
FalloffAngle | Określa kąt wygaszenia światła. | Liczba [deg] w zakresie (1;180> lub cosinus połowy tego kąta | |
HotspotAngle | Określa kąt pełnej jasności światła. | Liczba [deg] w zakresie (1;180> lub cosinus połowy tego kąta |
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. |
Typy animacji
Wartość | Znaczenie | Uwagi |
---|---|---|
false | Brak animacji. | |
true | Możliwość animowania za pomocą eventów. | |
sky | Animacja nocnego nieba | |
wind | Kołysanie się obiektu pod wpływem wiatru. | |
billboard | Obracanie się obiektu w kierunku kamery. | |
digiclk | Animacja zegara cyfrowego | |
seconds | Sekundy płynnie (60s/360°, pełny obrót w minutę) | |
seconds_jump | Sekundy z przeskokiem co 6° | |
minutes | Minuty płynnie (1h/360°, pełny obrót w godzinę) | |
minutes_jump | Minuty z przeskokiem co 6° | |
hours | Godziny płynnie (12h/360°) | |
hours_jump | Godziny z przeskokiem co 30° | |
hours24 | Godziny płynnie (24h/360°) | |
hours24_jump | Godziny z przeskokiem co 15° | |
ik | IK: zadający | brak funkcjonalności w exe |
ik11 | IK: kierunkowany | brak funkcjonalności w exe |
ik21 | IK: kierunkowany | brak funkcjonalności w exe |
ik22 | IK: kierunkowany | brak funkcjonalności w exe |