Robię grę 3D w pierwszej osobie. Czy powinienem nadać każdej postaci osobne VBO, czy też mogę spakować wszystkie postacie w jedno VBO? Jakie są zalety / wady?
Robię grę 3D w pierwszej osobie. Czy powinienem nadać każdej postaci osobne VBO, czy też mogę spakować wszystkie postacie w jedno VBO? Jakie są zalety / wady?
Odpowiedzi:
To naprawdę wybór między wydajnością a elastycznością, ale wymienię moje opinie na ten temat.
Jeden pojedynczy VBO
Pozytywne strony to:
a negatywne strony to:
Indywidualne VBO: s
Pozytywne strony to:
a negatywne strony to:
Podsumowanie
Polecam profilowanie twojej aplikacji; uzyskaj prawdziwe wąskie gardło w danych, które możesz zobaczyć. Przedwczesna optymalizacja może zostać pokazana (w tym przypadku) jako niepotrzebna. Biorąc to jednak pod uwagę, jeśli odkryjesz prawdziwą utratę wydajności w swojej aplikacji, biorąc pod uwagę scenariusz indywidualnego VBO , możesz rozpocząć wdrażanie pojedynczego VBO.
Jednak, dopóki nie jest to konieczne (liczba obiektów jest niska, ogólnie niewiele zmian stanu itp.) Polecam korzystanie z poszczególnych VBO: s, chyba że widzisz, że to nie zadziała.
Edytować
Zapomniałem wspomnieć, że przy wielu losowaniach byłoby dobrze. Najważniejszą rzeczą w czasach krytycznych dla wydajności jest ograniczenie zmian stanu do minimum. Możesz po prostu ustawić liczbę indeksów do przetworzenia i przesunięcie dla każdego połączenia losowania, i to jest w porządku. Jednak utrzymuj zmiany stanu na jak najniższym poziomie i wykonuj jak najmniej połączeń losujących, to wielka cześć tej odpowiedzi, a przynajmniej to, co próbowałem powiedzieć.