Zmniejszenie skali w celu optymalizacji gry

Ogólne pytania na temat Unity3D

Zmniejszenie skali w celu optymalizacji gry

Postprzez Skatton » 29 Mar 2019, 16:43

Cześć,
mam zapytanie dotyczące optymalizacji. Załóżmy że mamy przykładową scenę i teren rozmiarów: 1000 na 1000 i wysokości np 200. Do skali tego terenu dostosowane jest wielkość wszystkich występujących na scenie obiektów (drzewa, postacie, domy itd.). Obiekty oraz kontroler trzecioosobowy mają w tym przypadku wielkość standardową, zalecaną przez twórców silnika. Załóżmy dalej, że zmniejszamy skalę tego terenu i ma teraz ona: 500/500/100. Odpowiednio wszystkie obiekty na scenie, które wcześniej miały rozmiary, x/y/z :/1/1/1, zmniejszamy na: 0.5/0.5/0.5, tak samo robimy z kontrolerem trzecioosobowym. Odłóżmy na bok fizykę, bo akurat w tym przypadku nie jest ona szczególnie ważna. Pytanie brzmi: Czy zabieg taki może pomóc w optymalizacji i zwiększeniu FPS na tej scenie czy jednak straty będą większe od potencjalnych zysków?
Skatton
 
Posty: 36
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez EvilArev » 29 Mar 2019, 19:10

Bez różnicy w tej skali. Pozycje są zapisywane za pomocą liczb zmiennoprzecinkowych. W skali jakiej prawdopodobnie używasz nie zauważysz różnicy.
Przyznam szczerze, że jest to jeden z ciekawszych pomysłów na optymalizację, jakie widziałem. Mógłbyś wyjaśnić co sprawiło, że na niego wpadłeś?
EvilArev
 
Posty: 377
Rejestracja: 14 Kwi 2013, 15:32
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Skatton » 29 Mar 2019, 19:33

Zauważyłem, że unity miewa problemy z wydajnością, gdy używa się większych terenów z zaimportowanymi heightmapami rzeczywistych obszarów, przy czym są to heightmapy obejmujące duży obszar (rzędu kilkaset kilometrów długość/szerokość) przeskalowane na teren o wielkości np. 2000/2000 (istotą problemu pracy z taką heightmapą jest jej bardzo złożona rzeźba). Próbowałem bawić się skalą i okazało się, że na odpowiednio mniejszym terenie, taka heightmapa radzi sobie lepiej, tzn scena ma mniejsze spadki FPS niż wówczas, gdy ta sama heightmapa funkcjonuje na terenie większym. Chodzi chyba o liczbę jednostek terenu, które są przetwarzane. Moje pytanie dotyczyło, czy odpowiednio przeskalowane obiekty, to znaczy obiekty zmniejszone, mają też wpływ na wydajność, ale jak rozumiem z twojej odpowiedzi, ich skala nie ma na wydajność wpływu.
Skatton
 
Posty: 36
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Ether_141 » 29 Mar 2019, 21:44

Zmniejszenie skali modelu nie zmniejszy ilości trisów w tym modelu, albo nie zmniejszy jakości tekstur czy materiałów na tym modelu, co oznacza oczywiście, że w żaden sposób nie wpłynie to na optymalizację gry.

Co do kwesti tego terenu. Zapewne nie zmniejszałeś skali terenu w Tranform bo to kompletnie bez sensu, ale jego rozmiar, a co za tym idzie, siatka terenu się zmniejszyła co wpłyneło na np. zwiększoną liczbę fpsów.

Jak chcesz zwiększyć wydajność, to zwracaj uwagę na jakość modeli, odpowiednie ustawienia światła i grafiki, korzystaj z LOD, occlusion culling itp. technik.
Awatar użytkownika
Ether_141
 
Posty: 427
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Hostur » 31 Mar 2019, 19:28

W niczym Ci to nie pomoże, może jedynie zaszkodzić. Wszystkie rooty powinny być w skali 1.
Unity ma problem z obiektami które znajdują się w większej odległości od punktu 0.0.0 i wynika to po prostu z działania na float.
Jest masa innych rzeczy które możesz optymalizować. Tutaj znajdzie kilka przykładów o których aktualnie pewnie nie wiesz:
https://www.youtube.com/watch?v=n-oZa4Fb12U&t
https://www.youtube.com/watch?v=_wxitgdx-UI&t
https://www.youtube.com/watch?v=W45-fsnPhJY
Hostur
 
Posty: 707
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Skatton » 03 Kwi 2019, 02:51

Hostur, nie wiem, czy zaznaczyłem, ale chodzi mi o zmniejszanie skali obiektów wyłącznie na scenie w oknie inspektora. Czy możesz w dwóch zdaniach wyjaśnić, w jaki sposób zmniejszenie "Scale" - na przykład w przypadku postaci/kontrolera trzecioosobowego lub animowanych postaci niezależnych - może spowodować problem? Co do pozostałych rzeczy, jeśli chodzi o optymalizację, o których wspomniał kolega Ether, znam je, oczywiście. Dzięki za podrzucone linki.
Skatton
 
Posty: 36
Rejestracja: 30 Cze 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Hostur » 03 Kwi 2019, 09:58

Chociażby fizyka będzie źle oddziaływać na te obiekty.
Nawet nie jestem Ci w stanie teraz podać konkretnego przykładu bo zawsze staram się trzymać skali 1 ale pamiętam, że wynika to z wielu problemów na jakie natrafiliśmy kiedyś w projekcie - kiedy odeszliśmy na chwilę od tej zasady.

W drugiej odpowiedzi masz kilka linków żeby rozpocząć kopanie w tej kwestii:
https://answers.unity.com/questions/175 ... jects.html
Hostur
 
Posty: 707
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Zmniejszenie skali w celu optymalizacji gry

Postprzez Skatton » 03 Kwi 2019, 12:26

Dziękuję za pomoc. Rozjaśniło mi to sprawę. Właściwie mój dylemat bierze się, jak już napisałem wcześniej, z jednego tylko powodu: skala terenu. Przeskalowując teren na mniejszy jest on po prostu bardziej wydajny - chodzi zwłaszcza o teren z zaimportowaną heightmapą - i to jest właśnie powód tego eksperymentu.
Skatton
 
Posty: 36
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 2 gości

cron