11
votes

Taille maximale pour objets tampon de sommet (OpenGL ES 2.0)

Y a-t-il une taille maximale pour les objets tampons de sommet liés à GL_ARRAY_Buffer ou GL_ELEMENT_ARRAY_BUFFER ???

À l'origine, je dessine un maillage composé de 16 sous-thèmes. Pour chaque sous-thèse, j'ai créé un tampon de sommet et pendant la phase de rendu, j'ai appelé Gldrawelements. Cela a fonctionné bien sur le simulateur IOS, mais lorsque j'ai essayé de rendre à mon appareil, l'écran clignote constamment et les mailles ne sont pas affichées.

J'ai alors fait une lecture et j'ai constaté que vous ne devriez pas appeler des GLDRAWELS Trop de fois au cours d'une phase de rendu. J'ai essayé de combiner tous mes sous-thèmes dans un tampon de sommet. La mémoire tampon liée à GL_ARRAY_Buffer contient 3969 sommets, où chaque sommet contient 20 flotteurs. Donc, la taille de ce tampon est de 317520 octets. Les indices liés à Gl_Element_Array_Buffer sont 16425 shorts. La taille de ce tampon est donc de 32850 octets.

sur le wiki OpenGL, il est indiqué que "1 Mo à 4 Mo est une taille agréable selon un document NVIDIA" pour un objet tampon de sommet.

J'ai imprimé le résultat de Glgeterror après la liaison de chaque objet tampon, et appelez GLDrawelements, et je ne vois aucune erreur. Cependant, mes mailles ne sont pas correctement affichées. Il semble que seul seul le premier maillage soit correctement dessiné. Y a-t-il quelque chose de poisson dans la façon dont j'ai mis en œuvre cela? Je ne voulais pas faire cette question trop longtemps, donc s'il y a des informations supplémentaires, vous devez répondre à cette question, faites-le-moi savoir. S'il n'y a rien dans la théorie qui semble faux, je viens peut-être de faire une erreur dans la mise en œuvre.


0 commentaires

3 Réponses :


5
votes

Il y a une taille maximale, en ce sens que le GPU peut toujours émettre une erreur GL_OUT_OF_MEMORY. Mais autre que ça, non.


0 commentaires

2
votes

Voir ceci:

http://www.sunsetleakesoftware.com/2008/ 08/05 / Leçons-molécules-opengl-es

Il existe certaines limites naturelles utilisant des types de données plus petits, comme manifestement ~ 65000 pour l'utilisation de shorts comme index.

Mais plus important encore, il y a une aide supplémentaire dans le lien, qui est un très bon tutoriel et inclut certaines preuves anecdotiques qui court jusqu'au travail de limite de fonctionnement naturel.


0 commentaires

0
votes

Je sais qu'il est trop tard pour répondre à cette question. Cependant, je souhaite que la réponse aide quelqu'un!

basé sur la spécification du système graphique Openg (version 4.5 (profil principal) - 28 mai 2015), il indique: "Il n'y a pas de limite au nombre de sommets qui peuvent être spécifiés, autres que la taille des tableaux de sommet." S'il vous plaît voir page 322.

Désolé, aussi comme Nicol Bolas mentionne ici: https://stackoverflow.com/a/7369392/4228827

acclamations, Naif


2 commentaires

Que fait les spécifications OpenGL 4.5 avec OpenGL ES 2.0?


En fait, le OpenGL ES est basé sur le système graphique OpenGL 2.0 qui pourquoi l'a citée. Mais je suis d'accord, j'aurais dû faire référence à la spécification OpenGL ES à la place! Merci pour votre commentaire.