Autor Wątek:  Optymalizacja modeli taboru  (Przeczytany 2644 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6354
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 384
Optymalizacja modeli taboru
« dnia: 19 Sierpnia 2008, 01:13:14 »
Czytając o modelach do MSTS znalazłem taki przykład użycia programu konwertującego z 3DS:

Cytuj
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ć.
« Ostatnia zmiana: 19 Sierpnia 2008, 16:49:58 wysłana przez Ra »
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Żabek

  • Wiadomości: 546
  • Gdzie jest guzik rezygnacji?
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Optymalizacja modeli taboru
« Odpowiedź #1 dnia: 19 Sierpnia 2008, 15:57:06 »
Gdzieś widziałem już takie próby. To było przy okazji oświetlenia scenerii w nocy - wraz ze zmniejszeniem odległości zwiększała się jasność tekstury. Wyglądało to całkiem obiecująco :)
Nie wiem tylko, jak takie coś wygląda od kuchni - model ma wtedy wiecej poly i mimo, że nie renderowane gdzieś sobie siedzą i potencjalnie mogą wpływać na FPS. Ale to temat do zbadania :)
The Frog