podczas wykonywania niektórych testów dla małego projektu na iPhone/iPad, nad którym pracuję, zauważyłem, że w rysowaniu modeli szkieletowych za pomocą glDrawElements za pomocą GL_LINES występuje duże obniżenie wydajności procesora .glDrawElements z GL_LINES wymusza gleRunVertexSubmitARM? (lub: dlaczego rysowanie szkieletów jest powolne na iOS?)
Jest to scenariusz:
- model z 640 wierzchołków (4 pływaków na położenie, 3 pływaków do normalnych, żadnych problemów wyrównanie ... wszystko na 4 bajty granice)
- 3840 indeksów (unsigned short)
- oba wierzchołki i indeksy użyciu VBOs (bez VAO)
- powyższy wzór narysowany glDrawElements z GL_TRIANGLES działa dobrze
Następnie:
- sam model z 640 wierzchołkach
- 2560 indeksów
- VBOs i bez vào
- narysowany glDrawElements z GL_LINES wyzwala ciągłych połączeń do gleRunVertexSubmitARM wykorzystanie procesora niebo rakiety ...
W obu przypadkach modele wyglądają tak, jak powinny i brak śladów po błędzie ...
Wygląda na to, że problem jest zależny od urządzenia. Doświadczam tego na iPhone 3GS i iPhone 4, a nie na iPadzie 2 ani na symulatorze. Na iPadzie 2 frame-time CPU = 1ms i bez wywołań dla gleRunVertexSubmitARM, na kliencie iPhone 4 frame-time CPU = 12ms i ciągłym wywołaniu metody gleRunVertexSubmitARM.
Czy ktoś może wyjaśnić to zachowanie lub wskazać, jakie błędy mogę popełnić?
Każdy wgląd jest bardzo cenny. Dzięki z góry,
Francesco