Pracuję z OpenGL4.X. Od czasu do czasu czytam this Dokumentacja Apple OpenGLES2, w którym stwierdza się, że używanie przeplatanych tablic atrybutów poprawia wydajność na urządzeniach mobilnych z systemem iOS i jest zalecanym sposobem (zamiast używanie bloków atrybutów).Zwiększenie wydajności za pomocą przeplatanych tablic atrybutów w OpenGL4.0
Dla tych, którzy nie rozumieją, co to znaczy tutaj jest przykład:
Blok atrybutów w pojedynczej macierzy atrybut:
float vertices[]{
//Triangle vertices:
v0x , v0y , v0z ,
v1x , v1y , v1z ,
v2x , v2y , v2z ,
//Triangle UVs:
uv0s , uv0t ,
uv1s , uv1t ,
uv2s , uv2t ,
//Triangle Normals:
n0x , n0y , n0z ,
n1x , n1y , n1z ,
n2x , n2y , n2z
}
Interleaved tablica atrybut:
float vertices[]{
v0x , v0y , v0z ,
uv0s , uv0t , ////vertex 1 attributes
n0x , n0y , n0z ,
v1x , v1y , v1z ,
uv1s , uv1t , ///vertex 2 attributes
n1x , n1y , n1z ,
v2x , v2y , v2z ,
uv2s , uv2t , ///vertex 3 attributes
n2x , n2y , n2z
}
Moje pytanie brzmi: Czy jest to również prawdziwe dla OpenGL działającego na des Ktop GPU? Jeśli tak, to jak duży może być teoretycznie wzrost wydajności?
możliwy duplikat [w jaki sposób wstawione ułożenie wierzchołków pomaga uzyskać wydajność?] (Http://stackoverflow.com/questions/14535413/how-does-interleaved-vertex-submission-help-performance) – legends2k