La taille maximum pour les Vertex Buffer Objects (OpenGL ES 2.0)

Est-il une taille maximale pour les vertex buffer objects liées à la GL_ARRAY_BUFFER ou GL_ELEMENT_ARRAY_BUFFER???

À l'origine, je dessinais un maillage composé de 16-ci. Pour chaque submesh, j'ai créé un vertex buffer et au cours de la phase de rendu, j'ai appelé glDrawElements.
Cela a bien fonctionné sur le simulateur iOS, mais quand j'ai essayé de rendre à mon appareil, l'écran clignote en permanence et les mailles ne sont pas affichés.

Puis j'ai fait un peu de lecture et constaté que vous ne devez pas appeler glDrawElements trop grand nombre de fois au cours d'une phase de rendu.
J'ai essayé de combiner l'ensemble de mon-ci dans un vertex buffer.
Le tampon lié à GL_ARRAY_BUFFER contient 3969 sommets, où chaque sommet contient 20 chars. De sorte que la taille de ce tampon est 317520 octets.
Les indices liés à GL_ELEMENT_ARRAY_BUFFER sont 16425 de courts-métrages. La taille de ce tampon est donc 32850 octets.

Sur l'OpenGL wiki, il est dit que "de 1 mo à 4 MO est d'une bonne taille, selon une nVidia document" pour un Vertex Buffer Object.

J'ai imprimé le résultat de glGetError après la liaison de chaque tampon d'objet, et de l'appel de glDrawElements, et je ne vois pas d'erreurs.
Cependant, mes mailles ne sont pas affichées correctement. Il semble que seule la première maille obtient correctement dessiné. Est-il quelque chose de louche dans le sens où je l'ai mis en œuvre cette? Je ne voulais pas faire de cette question trop longtemps donc si il y a des informations supplémentaires, vous devez répondre à cette question, laissez-moi savoir. Si il n'y a rien, en théorie, cela semble mauvais, peut-être que j'ai simplement fait une erreur dans la mise en œuvre.

OriginalL'auteur Alvin Heng | 2011-09-10