Przepraszam, chciałem dodać komentarz do wątku z pytaniem, ale okazało się, że skończyłem za dużo opracowywać. Moje doświadczenie programistyczne jest z perspektywy DX 11, więc niektóre z nich mogą nie mieć zastosowania w OpenGL
Lokalizacja pamięci danych z pewnością odgrywa istotną rolę. Ale jest kilka innych elementów, które mają wpływ na to, szerokość danych, jak wiesz. Miałem kilka procesorów graficznych i miałem uderzającą wydajność na niektórych w oparciu o pewne punkty krytyczne. Tak jest na przykład na moim starym AMD r290, jeśli pamiętam, można w zasadzie przekazać do 4 float4s do bufora wierzchołków bez dodatkowych kosztów powyżej 1, ale gdy opublikowałem> 4, nastąpił wymierny spadek (w ramce oceniać). Jest to całkowicie poza moim wspomnieniem, a więc jest jak najbardziej anegdotyczne. Ale utrzymuje się, że architektura GPU cały czas się zmienia, a jakie niszowe techniki, które dają dziś przewagę wydajności, mogą być zmorą wydajności jutro. JA'
Powiedziawszy to, zadałeś pytanie dotyczące zamawiania wierzchołków, a na pewno pomoże to marginalnie. Wzrost wydajności polega na połączeniu tego z buforami indeksu, co następnie pozwala sprzętowi zoptymalizować i buforować już obliczone wierzchołki. Z pewnością możesz uzyskać jeszcze więcej korzyści z pasków trójkątnych itp., Które zostały specjalnie uporządkowane według twoich myśli. Większość wykonywanego przeze mnie renderowania modeli to modele zoptymalizowane pod kątem indeksów / wierzchołków z instancjami, używam niewielkiej liczby odnośników do efektów ruchu cyklicznego (na przykład gałęzi drzewa), w takich przypadkach cała gałąź drzewa szuka tej samej wartości. Można więc również skorzystać z buforowania.
W podsumowaniu mogę tylko powiedzieć:
- Staraj się nie przesadzać z optymalizacją na początku, podczas gdy wciąż rozwijasz swoją grę / aplikację, staraj się nie przedwcześnie optymalizować. Jeśli musisz wrócić i dodać nowe możliwości, możesz stracić cały wysiłek. Masz mój nawyk, może> <, uwielbiam próbować uzyskać najlepszą wydajność i techniki
- Architektura GPU jest zróżnicowana, a mocne strony jednego mogą odzwierciedlać słabości drugiego. AMD i Nvidia słyną z zachęcania deweloperów do optymalizacji gier pod kątem ich architektury, z których każda ma swoje zalety / wady. Podjęcie środkowej drogi rozwoju może być najlepszym miejscem, nie korzystaj z funkcji opartych na dostawcy sprzętu (opinia tutaj). (dodaj do tego, niektóre spakowane formaty istnieją tylko w AMD).
To tylko kilka myśli i doświadczeń, które miałem. Istnieje wiele książek, które należy wziąć pod uwagę na te właśnie tematy. Nie widziałem wielu, którzy przepisują to, co proponujesz, ale to nie znaczy, że to źle. Powodzenia.