- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Symulator => Wątek zaczęty przez: Ra w 25 Maja 2008, 07:05:45
-
Jestem w trakcie rozpracowania plików .T3D. Niestety nie ma do nich żadnej dokumentacji (przynajmniej ja nie znalazłem).
Wiem, że mają strukturę hierarchiczną (typu drzewo). Każdy element ma najpierw parametry opisowe, potem macierz transformacji i na końcu listę trójkątów. Hierarchię, macierz transformacji i trójkąty rozpracowałem na tyle, że udało mi się je wyeksportować do pliku .3DS.
Natomiast zagadką są dla mnie pozostałe parametry opisowe. W pliku EU07.EXE są znalazłem następujące ciągi:- type: - możliwe wartości: mesh, point, freespotlight. Mesh to siatka trójkątów. Freespotlight to punkt świetlny (rodzaj reflektora). Ale czym jest point?
- anim: - chyba zawsze jest false, może mieć inne wartości?
- nearattenstart: - niby początek zanikania światła w zbliżeniu, ale czy to działa?
- map: - nazwa pliku tekstury albo słowo replacableskin, jeśli teksturę można podmienić.
Ponadto nie ma ciągów (chyba?), ale są rozpoznawane:
- Parent: - nazwa obiektu wyżej w hierarchii (słowo none dla głównego elementu).
- Name: - nazwa elementu, może być użyta do animacji w event ... animation. Jeśli nazwa jest postaci Light_On## albo Light_Off##, element może być pokazywany i chowany za pomocą event ... lights (uwzględniana hierarchia). W modelach pojazdów są jeszcze inne nazwy specjalne (np. HeadLamp12_on), podobnie w kabinach.
- Diffuse: - kolor świecenia elementu (RGB, trzy liczby 0..255).
- SelfIllum: - świecenie elementu: true albo false.
- MaxDistance: - maksymalna odległość, z jakiej widać element (hierarchia ignorowana).
- MinDistance: - minimalna odległość, z jakiej widać element (j.w.).
- Transform: - początek macierzy transformacji.
- NumVerts: - ilość wierzchołków i definicje trójkątów.
Nie jest mi znane działanie następujących parametrów (nie chodzi o ogólne znaczenie, bo to można znaleźć w instrukcji 3D Studio Max, tylko o zastosowanie w Symulatorze):
- Ambient: (RGB, trzy liczby 0..255)
- Specular: (RGB, trzy liczby 0..255)
- Wire: false
- WireSize: 1.0
- Opacity: 100.0
- NearAttenStart: 0.0
- NearAttenEnd: 80.0
- UseNearAtten: true
- FarAttenDecayType: 2
- FarDecayRadius: 80.0
- FalloffAngle: 45.0
- HotspotAngle: 10.0
Nie są mi też znane okoliczności pojawienia się komunikatu Degenerated triangle found. Domyślam się, że może się pojawić w sytuacji, gdy wierzchołki trójkąta się pokrywają, ewentuallnie są na jednej prostej.
To tyle, co ja wiem. Ktoś wie coś więcej?
-
Nie są mi też znane okoliczności pojawienia się komunikatu Degenerated triangle found. Domyślam się, że może się pojawić w sytuacji, gdy wierzchołki trójkąta się pokrywają, ewentuallnie są na jednej prostej.
Dokładnie, dwa wierzchołki mają te same współrzędne.
-
- Diffuse: (RGB, trzy liczby 0..255);
- Ambient: (RGB, trzy liczby 0..255);
- Specular: (RGB, trzy liczby 0..255).
Ja znalazłem taki opis w scenery.doc:
ambient, diffuse, specular – podatność materiału na oświetlenie tymi 3ma składowymi światła (np. materiał błyszczący powinien mieć wysoką składową specular, ściany tunelu powinny mieć wysoką składową ambient i bardzo niskie diffuse i specular aby światło słoneczne na nie nie padało, itp).
-
- Ambient: (RGB, trzy liczby 0..255)
- Specular: (RGB, trzy liczby 0..255)
Chodzi o parametry światła - symulator przekazuje je do glMaterial / glLight - http://www.sjbaker.org/steve/omniv/opengl_lighting.html
Zamiast wypełnionych trójkątów rysowana jest ich siatka (krawędzie). WireSize określa szerokość linii - przekazywane do glLineWidth.
Nieprzezroczystosc (0% - calkowicie przezroczysty)
Nie są mi też znane okoliczności pojawienia się komunikatu Degenerated triangle found. Domyślam się, że może się pojawić w sytuacji, gdy wierzchołki trójkąta się pokrywają, ewentuallnie są na jednej prostej.
To tyle, co ja wiem. Ktoś wie coś więcej?
ZTCP degenerated triangle są wykrywane tylko przy pokrywających się wierzchołkach.
-
Nie są mi też znane okoliczności pojawienia się komunikatu Degenerated triangle found. Domyślam się, że może się pojawić w sytuacji, gdy wierzchołki trójkąta się pokrywają, ewentuallnie są na jednej prostej.
To tyle, co ja wiem. Ktoś wie coś więcej?
ZTCP degenerated triangle są wykrywane tylko przy pokrywających się wierzchołkach.
[/quote]
Moje pytanie, czy to oznacza że te wierzchołki się dublują czy tylko mają wspólne punkty? Mówie o siatce trójkątów robioną z Delanuay Mesh. Ja rozumiem że robiąc siatkę o charakterze powierzchnia pofałdowana, kilka trójkątów musi mieć wspólne wierzchołki, przylegać do siebie i to o to chodzi? Bo w moich sceneriach w konsoli podczas wczytywania wykazuje ''od zajeb...'' degenrated triangle co mnie zaniepokoiło. A patrząc w kierunku optymalizacji i poprawy FPSu - ważna sprawa.
-troche off topowo
Proponuje twórcą scenerii robić sobie plik z weksportowanymi krawędziami, tzn kiedy robimy siatkę krawędzie z których została stworzona pozostają, My potzrebujemy tylko teren więc linie i zamknięte spline nie są nam potzrebne, usuwamy je po Delanuay Mesh, ale kopiujemy na przyszłość do odrębnego pliku max. Wtedy nie są wczytywane do scn i znacząco wpływają na FPS, bo są to dodatkowe rzeczy exportowane do scn czy scm. niewiem czy robiliście takie zabiegi wcześniej, w każdym razie jest takie rozwiązanie, które stosuje od dawnego już czasu.
-
Moje pytanie, czy to oznacza że te wierzchołki się dublują czy tylko mają wspólne punkty? Mówie o siatce trójkątów robioną z Delanuay Mesh. Ja rozumiem że robiąc siatkę o charakterze powierzchnia pofałdowana, kilka trójkątów musi mieć wspólne wierzchołki, przylegać do siebie i to o to chodzi? Bo w moich sceneriach w konsoli podczas wczytywania wykazuje ''od zajeb...'' degenrated triangle co mnie zaniepokoiło. A patrząc w kierunku optymalizacji i poprawy FPSu - ważna sprawa.
W jednym trójkącie dwa wierzchołki się pokrywają. Mogą one powodować spadek ilości FPS, gdyż ciężko się liczy niektóre rzeczy dla linii.