Informacje o paczce EU07_71.7z

Zobacz wszystkie paczki wydane w styczniu 2011

Opis paczki EU07_71.7z

Tagi paczki: prawidłowa przestarzała nakładka użytkowa
Kategoria: inne dodatki, grupa: EXE
Poprawiony przeze mnie w grudniu 2010 kod symulatora MaSzyna zawiera następujące zmiany:

1. Typ pojazdu
W pliku CHK, w linii Param. można użyć parametru Type= do włączenia pewnych szczególnych własności. Dotychczas parametr ten był ciągiem znaków "ezt", "ET41", "et42", "pseudiesel". Zamieniłem to na typ wyliczeniowy (int), przez co również wielkość znaków przestała być istotna.

2. Drogi i podsypki o kształcie trapezowym
Jeśli dany odcinek połączony jest z następnym w taki sposób, że do punktu 2 podpięty jest punkt 1 kolejnego odcinka, to sprawdzana jest zgodność szerokości i profilu boków. Oba odcinki muszą być widoczne (rysowane) i nie być zwrotnicami. Jeśli profil nie jest zgodny, siatka trójkątów danego odcinka jest generowana z użyciem parametrów przekroju własnych oraz sąsiada. Wyjątkiem są rzeki, które zostały bez zmian (mają błędny przekrój poprzeczny - woda jest skośna). Wygenerowane siatki trójkątów są przechowywane w pamięci i wyświetlane bez ponownego generowania. Gdy przestają być potrzebne, są usuwane i w razie potrzeby generowane ponownie. Działa to dokładnie tak samo jak dotychczas i nie powinno mieć wpływu na FPS.

3. Wizualizacja przechyłek
Do generowania siatek zostały dołączone funkcje trygonometryczne kąta przechyłki, przy czym używane są jedynie własne kąty. Stąd możliwe jest ustawienie dwóch kolejnych torów/dróg ze skokiem przechyłki. Również nie powinno mieć to wpływu na FPS. Wyjątkiem są odcinki proste, na których zmienia się przechyłka (jest inna na każdym końcu). Odcinki takie są dzielone na segmenty, podobnie jak łuki, co może spowodować spadek FPS. Brak podziału na segmenty skutkował dziwnym wyglądem podsypki/drogi. Przechyłki nie są uwzględniane przy rysowaniu szyn zwrotnicy. Różnica między drogą a podsypką toru jest taka, że w drogach pobocza są rysowane poziomo, natomiast dla podsypki górna płaszczyzna jest cała pod jednym kątem.

4. Poprawiona inicjalizacja sprzęgów
Tablica sprzęgów ma indeksy 0..1, tymczasem była inicjowana indeksami 1..2. W efekcie sprzęg 0 nie miał ustawionych parametrów, a zamiast tego do pewnych innych zmiennych pojazdu trafiały przypadkowe wartości. Efekty tej zmiany nie jest znany, powinien być pozytywny.

5. Rozróżnianie prawych zwrotnic od lewych
Dzięki uprzejmości youBy dodałem rozróżnianie skrętu zwrotnicy, dzięki czemu iglice mogą być prawidłowo rysowane. Ponieważ typ zwrotnicy jest rozpoznawany przy wczytywaniu, a następnie używany przy generowaniu siatek, wydłuży się nieco wczytywanie i nie powinno mieć wpływu na FPS.

6. Animacja przekładania zwrotnic
Tworzenie w pamięci siatek trójkątów dla szyn powoduje, że przestaje być widoczna animacja zwrotnic. Sama animacja (przeliczanie odległości iglicy od odbiojnicy w funkcji czasu) znajduje się w kodzie generującym siatkę. W związku z tym, aby animacja była możliwa, jeśli zwrotnica nie jest w skrajnym położeniu, siatka dla szyn jest niszczona zaraz po wyświetleniu, aby została wygenerowana nowa. Powoduje to spadek FPS podczas ruchu iglicy, a także nieznaczny ogólny spadek FPS, ponieważ dla każdego toru musi być sprawdzone, czy jest on zwrotnicą. Jeśli dana zwrotnica nie posiada wygenerowanej siatki, jest przestawiana bez animacji. Dotychczas można było zauważyć podczas latania po scenerii, jak zwrotnice wchodzące w zasięg wzroku "przypominają sobie", że miały być przełożone. Animacja w pewnych przypadkach może być niewidoczna - iglica przestawia się natychmiastowo.

7. Uruchomione obrotnice
O budowie obrotnicy napisałem w poniższym wątku:
http://eu07.pl/forum/index.php/topic,17149.0.html
Obrotnica w stanie 0 ma statyczną siatkę trójkątów i nie powinna mieć wpływu na FPS. Nie są do końca zrobione zależności, więc możliwe jest obracanie modelem, podczas gdy szyny z taborem pozostaną nieruchome. W stanie 1 siatka trójkątów obrotnicy jest każdorazowo regenerowana, jeśli tylko zostanie wykryta różnica pomiędzy kątem toru, a kątem modelu. Zauważalny wtedy jest spadek FPS - u mnie było 15.0-15.3 w stanie 1 oraz 15.8 w stanie 0. W stanie 1 nie ma zabezpieczeń i możliwe jest wygenerowanie null track, jeśli tabor zjedzie, albo spróbuje wjechać. Możliwe jest również rozjechanie taboru (jeden wózek na obrotnicy, drugi na torze stałym).

8. Zmiana domyślnego filtrowania (rozmywania) tekstur TGA
Domyślnie tekstury TGA są rozmywane tak, jakby miały kanał alfa. Aby były rozmywane jak dotychczasowe bez kanału alfa, należy w nazwie pliku umieścić znak "$".

9. Ignorowanie eventów none_*
Eventy o nazwach rozpoczynających się od "none_", umieszczone na liście eventu multiple są ignorowane z informacją w logu. Przykładowe zastosowania - semafor bez tarczy (nazwa tarczy "none"). Również całkowicie ignorowane są wpisy takich eventów (z informacją w logu).

10. Ignorowanie nieistniejących eventów wpisanych w tory
Jeśli we wpisie toru umieścimy event, którego definicji nie będzie w scenerii, informacja o tym zapisze się do logu, natomiast nie wyskoczy okienko wymagające zatwierdzenia. Przydatne do testowania scenerii. Brakujące eventy w innych sytuacjach (np. multiple, z wyjątkiem opisanym powyżej) będą nadal generować okienko.

11. Optymalizacja odcinków prostych
Wektory kontrolne podane we wpisie odcinka są porównywane z wektorami jak dla odcinka prostego. Jeśli różnica długości nie jest większa niż 2cm, odcinek jest uznawany za prosty. W efekcie powinien wzrosnąć FPS na sceneriach, w których odcinki proste mają ustawione wektory kontrolne. Uwaga do tworzących scenerie: Odcinki proste z wpisanymi wektorami kontrolnymi są traktowane jak łuki i dzielone na segmenty długości 5m. Na pewno powoduje to niepotrzebny spadek FPS (na innych EXE), szczególnie przy dużej ilości równoległych prostych torów.

12. Szybsze dopasowanie końców
W paru miejscach było używane pobieranie końców odcinków za pomocą interpolacji stosowanej dla wyznaczenia dowolnego punktu na odcinku (z użyciem wielu mnożeń). Zmieniłem to na pobieranie końca wprost. Czas łączenia torów scenerii powinien być krótszy.

13. Dodane dodatkowe filtrowania tekstur
Jeśli w nazwie tekstury TGA umieszczony jest znak %, a za nim cyfra, stosowane są następujące filtrowania:
- przy powiększeniu GL_NEAREST - pikselowanie, przy zmniejszeniu:
%0 najbliższy z tekstury - GL_NEAREST (albo "#" w nazwie)
%1 średnia z tekstury - GL_LINEAR
%2 najbliższy z mipmapy - GL_NEAREST_MIPMAP_NEAREST
%3 średnia z mipmapy - GL_LINEAR_MIPMAP_NEAREST
- przy powiększeniu GL_LINEAR - rozmycie, przy zmniejszeniu:
%4 najbliższy z tekstury - GL_NEAREST
%5 średnia z tekstury - GL_LINEAR (alfa bez "#" w nazwie, teraz domyślne)
%6 najbliższy z mipmapy - GL_NEAREST_MIPMAP_NEAREST
%7 średnia z mipmapy - GL_LINEAR_MIPMAP_NEAREST
%8 najbliższy z dwóch mipmap - GL_NEAREST_MIPMAP_LINEAR
%9 średnia z dwóch mipmap - GL_LINEAR_MIPMAP_LINEAR (albo "$" w nazwie)
Parametr rozmywania 0..9 nie jest skalą liniową, tylko różnymi opcjami wyboru najbliższego koloru (NEAREST) albo średniej (LINEAR) z tekstury, ewentualnie z jednej, albo z dwóch mipmap (zmniejszonych tekstur).

14. Parametry rozmywania w EU07.INI
Można sobie ustawić własne preferencje rozmywania teksur. Parametrem jest liczba 0..9 (patrz punkt 13) albo -1 (domyślny). Niektóre rozmywania (1, 5, w mniejszym stopniu 0, 4, i 9) powodują znaczny spadek FPS na kartach nVidia. Na kartach ATI różnice są nieznaczne.
defaultfiltering - wszelkie TGA bez kanału alfa
ballastfiltering - TGA dla podsypki
railprofiltering - TGA dla szyny

15. Zmienione mapowanie nawierzchni drogi
Tekstura nawierzchni drogi jest mapowana bez skalowania poprzecznego. Traktowana jest ona jako kwadrat o boku podanym we wpisie (TexLength). Dzięki temu linie na trapezowatych drogach nie będą zmieniać szerokości, a perony mogą być mapowane kostką brukową bez jej zniekształcania. Aby utworzyć peron trapezowy z białą linią od strony toru, należy utworzyć odpowiedniej szerokości "pobocze" z linią umieszczoną na nim. W niektórych sceneriach mapowanie powierzchni drogi może być nieprawidłowe.

16. Użycie "smuga.tga"
Niezależnie od ustawienia domyślnego rozszerzenia, do rysowania smugi używany jest plik "smuga.tga". Został on dołożony do paczki.


EU07.EXE w wersji 1.2.44.71 posiada wady wcześniejszych. Tzn. znikają trójkąty na kartach firmy Intel i występują problemy przy teksturach DDS na kartach ATI.


Ra

Więcej ...

Linki do paczki EU07_71.7z

·   http://eu07.pl/userfiles/4245/EU07_71.7z
Zaplanowano pobranie pliku 2b14-eu07_71.7z

Pliki w paczce EU07_71.7z

PACK:EU07_71.7z,329041,C3CD8B7D,2011-01-04 13:45:18
info.txt,8156,2FE2266A,2011-01-04 13:45:18
Textures/smuga.tga,408563,EB6477AF,2008-08-16 21:57:32
EU07_71.exe,942080,4F78D51B,2010-12-20 03:54:56