Autor Wątek:  Klatki na sekundę (FPS)  (Przeczytany 3533 razy)

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

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 337
Klatki na sekundę (FPS)
« dnia: 08 Sierpnia 2013, 03:59:37 »
Ponieważ w wątku dotyczącym modyfikacji Tarniowa pojawiło się pytanie o wydajność po zmianach, chciałbym pokrótce przybliżyć ten temat, gdyż może nie wszyscy śledzą listę zmian w EU07.EXE.

1. Rozmiar scenerii nie ma wpływu na FPS. Niezależnie od tego, jak wielka jest powierzchnia scenerii, nieużywane jej fragmenty jedynie zajmują miejsce w pamięci, ale nie są przetwarzane. Sceneria jest zorganizowana w dwuwymiarową mapę, a do wyświetlania są kwalifikowane tylko te obiekty, które znajdują się w bezpośredniej okolicy kamery użytkownika. FPS bardziej zależy od liczby i skomplikowania tych najbliższych obiektów, a także od ogólnej liczby uruchomionych pojazdów.

2. Promień wyświetlanej scenerii jest regulowany automatycznie tak, aby uzyskać około 20 FPS. Tzn. przy domyślnych ustawieniach promień będzie zwiększany, jeśli wydajność przekracza 25 FPS, a zmniejszany, jeśli będzie mniej niż 16 FPS. Jeśli ktoś uzyskuje więcej niż 25 FPS to znaczy, że wyświetla mu się maksymalna odległość widzenia (domyślnie to jest 3km). Na sprzęcie, który nie osiąga 15 FPS niewiele da się zrobić. Symulator działa w miarę poprawnie do 5 FPS, potem zaczyna oszukiwać na fizyce (np. pociągi jeżdżą wolniej niż wynikało by to ze wskazania prędkościomierza).

3. Z moich obserwacji forum wynika, że dawno już nikt się nie skarżył na słabą wydajność, pomijając problemy konfiguracyjne. Np. wybrania nieodpowiedniej z dwu kart graficznych, braku sterowników, czy włączenia multisamplingu na kartach Intel. W pewnych przypadkach symulacja startuje z bardzo kiepską wydajnością i poprawia się to dopiero po uruchomieniu jakiegoś dźwięku (np. zatrąbieniu) – przyczyna takiego zachowania nie jest znana.

4. Sporadycznie spadek wydajności może być obserwowany w przypadku błędnych tekstur (np. o bokach nie będących naturalną potęgą liczby 2) albo nieoptymalnych modeli (gdy jest zbyt wiele submodeli). Opisywane też były przypadki spadku wydajności, jeśli np. las zrobiony pojedynczymi drzewami używa zbyt wielu różnorodnych tekstur.

5. Teoretycznie istnieje jeszcze dalsza możliwość poprawy wydajności, np. poprzez łączenie siatek prostych modeli (słupów, wysięgników), czy drzew o tej samej teksturze. Jednak w ostatniej ankiecie dotyczącej najpilniejszych zmian temat ten się w ogóle nie pojawił, w odróżnieniu od wcześniejszej, w której był jednym z dominujących.

6. Postęp techniczny i sukcesywna wymiana starszego sprzętu na nowy powoduje, że skrajne optymalizacje wydajności (np. specjalnie uproszczone modele, celowo odchudzone scenerie) interesują niewielki już odsetek użytkowników. Oni i tak wymienią sobie sprzęt wcześniej lub później, a wtedy cała ta praca pójdzie w zapomnienie. Optymalizacja symulacji jest potrzebna i istotna zawsze, ale powinna też mieć rozsądne granice.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Tolein

  • Wiadomości: 483
  • Kanapowy Toromistrz
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Klatki na sekundę (FPS)
« Odpowiedź #1 dnia: 11 Sierpnia 2013, 01:19:14 »
Proszę o komentarz w kwestii wydajności w kontekście zwiększania/zmniejszania liczby submodeli. W miarę możliwości proszę o nieco bardziej dogłębne wytłumaczenie (nie chodzi mi o tłumaczenie wszystkiego po kolei, tylko o wskazanie bezpośrednich i pośrednich przyczyn oraz ciągu przyczynowo-skutkowego). Interesują mnie zarówno sytuacje w których zwiększamy sumaryczną ilość submodeli wyświetlanych jednocześnie oraz sumaryczną ilość submodeli ogólnie (np. model podkładu mający dwa submodele LoD w kontraście do modelu podkładu posiadającego pięć submodeli LoD).
Pytam o to, ponieważ spotykam się z różnorodnymi, niekiedy sprzecznymi opiniami na ten temat i chciałbym rozwiać pewne wątpliwości, a może przy okazji sprowokować jakąś dyskusję / umotywować zmiany w programie.
"Podejrzewam, że:
1. poświęcają na to niewiele czasu,
2. mają ograniczoną liczbę zwojów mózgowych, przez co są w stanie wykonywać tylko proste i powtarzalne czynności,
3. wydaje im się, że mogą nawet podbić kosmos, ale życie weryfikuje im to negatywnie."

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 337
Odp: Klatki na sekundę (FPS)
« Odpowiedź #2 dnia: 11 Sierpnia 2013, 02:39:03 »
Każdy submodel wyświetlany jest oddzielnie, tzn. tak, jakby był osobnym obiektem. W przypadku braku animacji możliwe jest jedynie pominięcie odkładania macierzy widoku na stos i ustawianie nowej, co poprawia nieco wydajność. Jeśli jakiś submodel jest wyłączony (np. światła albo fazy LoD), to również pomijane są wszystkie jego potomne. Trudno mi ocenić wpływ na FPS, to można tylko zmierzyć podczas testów.

Aby testy były miarodajne, należy wyłączyć regulator promienia, np. ustawiając fpsaverage 50 fpsdeviation 50. Scenerię trzeba wypełnić równomiernie modelami na tyle, aby FPS był pomiędzy 30 a 50. Wartości FPS powyżej 60 nie są wiarygodne (a dokładniej, jeśli przekraczają częstotliwość odświeżania monitora).
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni