Problem z FPS: drzewa zabijają szybkość gry

Ogólne pytania na temat Unity3D

Problem z FPS: drzewa zabijają szybkość gry

Postprzez Skatton » 08 Paź 2017, 12:02

Witam,

mam problem z szybkością gry.
Drzewa i krzaki gęsto rozmieszczone powodują dramatyczny spadek FPS w czasie gry (mnie więcej z 50-60 FPS do 6-15 FPS a nawet mniej w gęstym lesie). Wydaje mi się to dziwne, bo używam mocnego komputera.

Gęstość lasu to mniej więcej 100 drzew i krzewów na pędzlu wielkości 20. Mam Occlusion Culling na terenie, zmniejszyłem Base Map Distance do 300, Tree Distance do 300, Billboard Start do 40, zredukowałem też Quality z "Fantastic" do "Beautiful" i problem wciąż występuje. Nie mówię już o dodaniu do tego lasu trawy, bo wówczas gra po prostu dostaje czkawki.

Czy można coś z tym zrobić bez mocnego obniżenia jakości gry, zachowując gęstość lasu? Może ktoś miał podobny problem i udało mu się go rozwiązać?
Pozdrawiam.
Skatton
 
Posty: 14
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z FPS: drzewa zabijają szybkość gry

Postprzez Marcin » 08 Paź 2017, 12:10

Analizowałeś grę profilerem? Ile czasu zajmuje rendering? Co konkretnie w renderingu może zabijać wydajność? Ile trójkątów naraz renderujesz? Jaki shader używasz? Stosujesz LOD? Ile obiektów naraz widzi Twoja kamera? Jak wygląda Twój las?
Marcin
 
Posty: 270
Rejestracja: 25 Lip 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z FPS: drzewa zabijają szybkość gry

Postprzez Skatton » 08 Paź 2017, 14:12

Jeszcze nie analizowałem samym profilerem, sprawdzałem po kolei każdy możliwy układ sceny i wyszło, że to drzewa i trawa stanowią problem.

Stosuję LOD do większości obiektów, które wymagają takiej potrzeby. Nie zabijają wydajności, problem pojawia się wraz z drzewami, a dokładnie - z dużo ich ilością przy sporej gęstości, w momencie, gdy postać wejdzie w las lub pojawi się w pobliżu. Gdy usunę drzewa, albo w dużej odległości od drzew, problemów nie ma. Do kontrolera FPS dodałem Post Processing Behaviour Script, ale zastosowałem tylko Antialiasing do wygładzania krawędzi (miałem jeszcze Ambient Occlusion, ale gra potwornie spowalnia).

Co do samych statystyk w czasie gry w lesie:
SetPass calls potrafi wzrosnąć z 50-100 do 1000 a Shadow Casters dziesięciokrotnie.

Zazwyczaj Tris to około 400-600 K, Verts: 400-600 K. - gra chodzi dobrze.
W lesie liczba Tris i Verts potrafi wzrosnąć 2-3 razy i gra spowalnia.

Jakość cieni jest obecnie na SOFT, światło kierunkowe, choć mam też dynamiczne dzień i noc (nieco spowalnia grę).

Jeszcze jedno. FPS spada o połowę, gdy zastosuję "Maximize on Play" do gry. Bez pełnego okna gra chodzi 2 razy szybciej. Jest na to jakieś wyjaśnienie?

Zrobiłem kilka screenów ze statystykami, chciałem dodać jako załączniki, ale "brak miejsca na załączniki" - ?
Skatton
 
Posty: 14
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z FPS: drzewa zabijają szybkość gry

Postprzez dawid621 » 08 Paź 2017, 18:40

Na asset store jest darmowa wersja assetu "mesh baker" i z tego co pamietam mozna w nim "zbejkowac" dowolna ilosc obiektow jako jeden mesh i jeden material. To zmniejszy min. liczbe draw calli jaka generuje Twoj las. Jesli chodzi o spadek wydajnosci przy powiekszeniu ekranu to sprawa jest prosta - zwiekszajac rozmiar ekranu gry, zwiekszasz jej rozdzielczosc i dlatego dziala wolniej.
dawid621
 
Posty: 109
Rejestracja: 07 Sie 2016, 18:52
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z FPS: drzewa zabijają szybkość gry

Postprzez Skatton » 08 Paź 2017, 20:30

Dzięki, sprawdzę tego mesh bakera, choć widzę że jest też wersja płatna za 65$. Zobaczymy, czy pomoże darmowy.
Skatton
 
Posty: 14
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time


Wróć do Wsparcie Unity

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 5 gości