Czytając o modelach do MSTS znalazłem taki przykład użycia programu konwertującego z 3DS:
For example:
Conv3ds.exe Dash9.s Dash9200.3ds will create the Dash9.s file for the game and make it viewable up to 200 meters.
Conv3ds.exe Dash9.s Dash9200.3ds Dash9500.3ds Dash91000.3ds Dash92000.3ds will create one Dash9.s file with four distance levels built into it at 200, 500, 1000, and 2000 meters. This of course means that there must be four .3ds files created using the same shape but with reduced polygons to make rendering more efficient on slower computers, and reduce rendering on distant objects.
O co chodzi? Że nie jest to jeden model, ale
cztery różne modele tej samej lokomotywy. Im większy dystans, tym modele są bardziej uproszczone. Tymczasem - przy mojej znajomości modeli do Symka - odnoszę wrażenie, że w większości przypadków model jest jeden, widoczny od zera do maksimum, co najwyżej wraz z odległością znikają pewne szczegóły.
Chciałbym zaproponować stworzenie (lub przerobienie) jakiegoś modelu w następujący sposób:
- szczegółowy model widoczny jest do odległości 200m;
- od 200m do 500m widoczny jest model bardziej uproszczony;
- powyżej 500m model ma około około 20 trójkątów.
Odległości wziąłem z podanego przykładu, trzeba by poeksperymentować z ich dobraniem do szczegółowości modelu. Nie chodzi tylko o to, żeby znikały wycieraczki, klamki i barierki, tylko żeby podmienić cały model na całkiem inny (ale z tą samą teksturą). Oczywiście odległości muszą być dobrane w taki sposób, żeby moment przejścia nie był dostrzegalny.
Do wstępnych testów można użyć np. starego i nowego modelu ET22, połączonych w jednym T3D z odpowiednio ustawionymi MaxDistance i MinDistance (np. zmiana modelu w odległości 200m). Następnie wstawiamy do scenerii skład z 50 starych modeli, potem 50 nowych i następnie 50 mieszańców. Porównujemy FPS w różnych punktach składu (scenerii).
(Trochę inne zagadnienie, ale podobna zasada.) Jakiś czas temu robiłem optymalizację światła w latarniach drogowych. Jest tam świecąca tekstura oraz punkt świetlny (
FreeSpotLight). Po wielu próbach wyszło mi, że tekstura świecącej lampy powinna być widoczna w przedziale 0-200m, a punkt świetlny powyżej 50m. Wtedy praktycznie nie dostrzega się momentu przejścia (ani zniknięcia tekstury, ani pojawienia się punktu). Dla porównania, w semaforach punkt świetlny włączany jest powyżej 20m - niemniej świecą one pod innym kątem. Ich jeszcze nie próbowałem optymalizować.