Symulator/MaSzyna/EU07.EXE 113
Ponieważ prace nad wersją VBO się przeciągają, postanowiłem udostępnić EXE na bazie wersji 1.2.44.71 z dodanymi zmianami, które nie ingerują mocno w strukturę kodu. Zmiany te zostały wykonane głownie w styczniu 2011 i obejmują:
Spis treści
- 1 1. Poprawne działanie tekstur DDS na ATI
- 2 2. Informacje zwrotne
- 3 3. Rozmywanie tekstur TGA pojazdów
- 4 4. Obsługa sekundnika
- 5 5. Usunięta nadmiarowa animacja obiektów
- 6 6. Dodana animacja translate
- 7 7. Tekstura zewnętrzna w kabinie
- 8 8. Obsługa eventu AddValues
- 9 9. Poprawiona obsługa kąta kamery
- 10 10. Poprawione FreeSpotLight
- 11 11. Dźwięk alarmu przy poślizgu
- 12 12. Sortowanie obiektów terenu
- 13 13. Wyłączenie niewidocznych sektorów
- 14 14. Optymalizacja wyświetlania modelu
- 15 15. Redukcja pola widzenia
- 16 16. Poprawione include
- 17 17. Obsługa eventu WhoIs
- 18 18. Trójkąty na poziomie kwadratu kilometrowego
- 19 Uwaga autorska
1. Poprawne działanie tekstur DDS na ATI
Sterowniki ATI "oddają" koprocesor arytmetyczny w stanie wskazującym na wystąpienie błędów. W efekcie błędy te całkowicie uniemożliwiały działanie programu (przenosiły się do przeliczania fizyki). Zostało to zlikwidowane.
2. Informacje zwrotne
Dodany został obiekt zbierający informacje zwrotne w celu przekazania ich do odpowiedniego interfejsu sprzętowego. Wybór interfejsu dokonuje się parametrem feedbackmode w pliku EU07.INI. Na chwilę obecną dostępny jest jeden interfejs: feedbackmode 1 - sterowanie diodami klawiatury (Caps Lock - CA/SHP, Scroll Lock - jazda na oporach rozruchowych). Jest on domyślnie włączony i można go wyłączyć umieszczając wpis feedbackmode 0. Kolejne numery interfejsów będą rezerwowane w przyszłości.
- W wersji 145 został dodany tryb feedbackmode 2, w którym diody klawiatury zapalają się dla CA i SHP oddzielnie, nie ma natomiast sygnalizacji jazdy na oporach.
3. Rozmywanie tekstur TGA pojazdów
Do EU07.INI dodany został kolejny parametr - dynamicfiltering. Określa on sposób rozmywania (-1..9) dla tekstrur TGA bez kanału alfa, które są umieszczone na pojazdach. Dzięki temu można zmienić rozmywanie tekstur pojazdów niezależnie od rozmywania tekstur terenu i modeli. Patrz też opis wersji 71.
4. Obsługa sekundnika
W pojeździe możliwe jest dodanie ruchomej wskazówki sekundnika. Sekundy również są wyświetlane po przyciśnięciu [F1]. Poprawkę zgłosił kolega Bombardier.
5. Usunięta nadmiarowa animacja obiektów
Nadmiarowa animacja pojawiała się co najmniej, gdy animowany egzemplarz obiektu był poza zasięgiem widoczności (ze względu na min/maxdistance). Wtedy animacja przechodziła na pierwszy widoczny egzemplarz tego samego modelu. Obecnie podczas renderowania egzemplarza sprawdzane jest, czy animacje zostały ustawione konkretnie dla niego. Animacje przechodzące z innych egzemplarzy są ignorowane.
6. Dodana animacja translate
Dotychczas można było jedynie obracać submodele, przesuwanie nie działało. Przesuwanie jest niezależne od obracania, np. można obracać submodel w trakcie jego przesuwania (ale nie są one synchronizowane).
7. Tekstura zewnętrzna w kabinie
W kabinie pojazdu można użyć mapowanie replacableskin, które dotyczy tekstury zewnętrznej modelu. Dzięki temu można uzależnić kolorystykę w kabinie od tekstury zewnętrznej. Na przykład numer zewnętrzny pojazdu może być umieszczony również na pulpicie.
8. Obsługa eventu AddValues
Event AddValues działa podobnie jak UpdateValues, jednak zamiast zastępować poprzednie wartości komórki pamięci nowymi, dodaje je do siebie. Tekst jest dołączany na końcu tego w komórce pamięci, a liczby są dodawane jako zmiennoprzecinkowe. Gwiazdka oznacza, że wartość nie zostanie zmieniona. Można w ten sposób łączyć teksty, a także uzyskać np. zwiększenie liczby w komórce o 1.
9. Poprawiona obsługa kąta kamery
W trybie swobodnego latania lewy przycisk myszy nakierowuje na prowadzony pojazd. Przytrzymując ten przycisk ciągle możemy uzyskać efekt śledzenia pojazdu ze stałego miejsca. Prawym przyciskiem możemy ustawić kamerę w pewnym określonym miejscu względem pojazdu, ze skierowaniem kamery na niego. Przytrzymując ten przycisk ciągle możemy uzyskać efekt poruszania się razem z pojazdem.
10. Poprawione FreeSpotLight
Poprawiony został kąt widoczności świecącego punktu. Dotychczas kąt widoczności zależał od kąta patrzenia kamery, przez co semafory będące z boku przestawały świecić. Obecnie uwzględniane jest umiejscowienie kamery, natomiast kierunek patrzenia nie ma znaczenia. Również prawidłowo jest interpretowana wartość FalloffAngle w T3D (wcześniej kąt był podwajany). Ponadto pomiędzy kątem podanym jako HotspotAngle do FalloffAngle światło jest stopniowo przyciemniane.
11. Dźwięk alarmu przy poślizgu
Należy w CHK w linii Param. wpisać Type=181. Poprawkę zgłosił kolega Bombardier.
- Ta zmiana powoduje problemy przy przechodzeniu do innego członu lokomotywy, zostało to naprawione w wersji 120.
12. Sortowanie obiektów terenu
Obiekty w sektorze są grupowane wg sposobu ich wyświetlania w kilka niezależnych list. Dzięki temu powinna wzrosnąć wydajność wyświetlania sektorów o dużej liczbie obiektów. Modele posiadające wyłącznie przezroczyste albo wyłącznie nieprzezroczyste tekstury są renderowane w jednym przebiegu, zamiast w dwóch. FreeSpotLight generowany jest zawsze w cyklu nieprzezroczystych, niezależnie od tekstur modelu.
13. Wyłączenie niewidocznych sektorów
Sektory terenu poza polem widzenia (z tyłu) nie są renderowane, co znacznie zwiększa FPS. Może to powodować znikanie dużych obiektów (trójkąty terenu, modele), jeżeli są one zbyt duże (ponad 200m).
14. Optymalizacja wyświetlania modelu
Struktura modelu jest analizowana pod kątem submodeli z teksturami przezroczystymi, nieprzezroczystymi oraz replacableskin. Przy renderowaniu modeli mieszanych (patrz punkt 12) pomijane są gałęzie, które nie zawierają danego typu tekstur. Jeśli model ma wiele submodeli i musi posiadać zarówno przezroczyste jak i nieprzezroczyste tekstury, zalecane jest umieszczenie ich w oddzielnych gałęziach, możliwie blisko pierwszego submodelu. Wtedy w każdym cyklu renderowania (nieprzezroczyste, następnie przezroczyste), pomijane będą całe gałęzie. Przy okazji, do FreeSpotLight można doczepiać submodele z przezroczystymi teksturami (wcześniej były one obcinane - np. robiły się dziury w semaforach).
15. Redukcja pola widzenia
Renderowane sektory zostały dodatkowo ograniczone do "ośmiokąta" (przedtem był to kwadrat o boku 4 km). Zmniejsza to obszar renderowany o 13.6%, praktycznie bez utraty jakości. Dodatkowo, po wykryciu spadku FPS poniżej 12, obszar renderowania jest ograniczany do 1.5km (zmniejszenie o kolejne 40.8% względem wyjściowego kwadratu). Powrót do większego pola widzenia następuje po wykryciu wzrostu FPS powyżej 15.
16. Poprawione include
Zmodyfikowany został parser w zakresie rozpoznawania parametrów include. Powinno dać się użyć dowolną liczbę parametrów. W przypadku użycia parametru o numerze większym niż liczba parametrów przekazana w include, wstawiana będzie wartość none.
17. Obsługa eventu WhoIs
Wykonanie eventu wpisuje do komórki pamięci nazwę pociągu (rozkładu) określoną we wpisie trainset. Wartość ta może być używana do rozpoznania, który pociąg dojeżdża do stacji i określenia, jak go pokierować dalej. Parametry liczbowe będą powiązane z rozkładem jazdy, na obecną chwilę nie należy z nich korzystać.
18. Trójkąty na poziomie kwadratu kilometrowego
Aby ograniczyć zjawisko znikania trójkątów terenu, są one przenoszone na poziom kwadratu kilometrowego. Dzięki temu ich wyświetlanie jest niezależne od widoczności sektorów, z których zbyt mocno wystają. Niemniej w niektórych miejscach niektórych scenerii mogą być nadal zauważalne znikające trójkąty. Szczególnie znikanie może mieć miejsce przy przekraczaniu granicy kwadratu kilometrowego. Rozwiązanie z automatycznym podziałem zbyt dużych trójkątów (na 4 mniejsze poprzez podział każdego boku na pół) aż do osiągnięcia rozmiaru 300m nie sprawdziło się - spadek FPS był znaczny, do tego wydłużało się wczytywanie scenerii.
Uwaga autorska
EU07.EXE w wersji 1.2.77.113 nie działa prawidłowo na kartach firmy Intel (znikają losowo trójkąty). Zastąpiona nowszą wersją 120, która zawiera wymienione funkcjonalności i dalsze poprawki.
Ra
MaSzyna - wersje | |
---|---|
Wersje 2005-2009 | 699kB • Mega Pack (KURS90, 717kB) • Dizelpack (735kB) |
Wersje z 2011 | 71 • 113 • 120 • 145 • 162 (PC2010) • 212 • 231 • 291 |
Wersje z 2012 | 325 (PC2011) • 355 • 372 • 390 • SPKS@390 |
Wersje z 2013 | 394 (01.13) • Kurs 2013 • 408 • SPKS@408 (08.13) • 414 |
Wersje z 2014 | 424 • 435 • 441 • 450 • 457 |
Wersje z 2015 | 464 (15.02) • 469 (15.04) |
Wersje robocze | SPKS • warsztat |