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
Vous devez vous connecter pour publier un commentaire.
Il y a une taille maximale, dans le sens que le GPU peut toujours émettre un GL_OUT_OF_MEMORY erreur. Mais autre que cela, non.
OriginalL'auteur Nicol Bolas
Voir ceci:
http://www.sunsetlakesoftware.com/2008/08/05/lessons-molecules-opengl-es
Il y a quelques limites naturelles à l'aide de petits types de données, comme évidemment ~65000 pour l'utilisation des courts métrages que l'index.
Mais plus important, il y a de l'aide supplémentaire dans le lien, qui est un très bon tutoriel, et comprend quelques preuves anecdotiques que les shorts jusqu'à l'naturelle limite fonctionnel de travail.
OriginalL'auteur Celess
Je sais qu'il est trop tard pour répondre à cette question. Cependant, j'aimerais que la réponse aide à quelqu'un!
Basé sur La Spécification de OpenG Système Graphique (Version 4.5 (Profil de Base) - 28 Mai 2015), il indique:
"Il n'y a pas de limite au nombre de sommets qui peut être spécifié, autre que la taille des vertex arrays." s'il vous plaît voir la page 322.
Désolé, également en tant que Nicol Bolas de citer ici:
https://stackoverflow.com/a/7369392/4228827
Cheers,
Naif
En fait, l'OpenGL ES est basé sur le graphique compatible OpenGL 2.0 système d'pourquoi citée. Mais je suis d'accord, j'aurais visé à l'OpenGL ES spécification de la place! Merci pour votre commentaire.
OriginalL'auteur Nai