Tamaño máximo para objetos de búfer de vértices (OpenGL ES 2.0)

¿Existe un tamaño máximo para los objetos de búfer de vértices unidos a GL_ARRAY_BUFFER o GL_ELEMENT_ARRAY_BUFFER ???

Originalmente, estaba dibujando una malla compuesta por 16 submallas. Para cada submesh, creé un búfer de vértices y durante la fase de renderizado, llamé glDrawElements. Esto funcionó bien en el simulador de iOS, pero cuando intenté renderizar en mi dispositivo, la pantalla parpadea constantemente y no se muestran las mallas.

Luego leí un poco y descubrí que no debería llamar a glDrawElements demasiadas veces durante una fase de renderizado. Traté de combinar todas mis submallas en un búfer de vértices. El búfer vinculado a GL_ARRAY_BUFFER contiene 3969 vértices, donde cada vértice contiene 20 flotadores. Por lo tanto, el tamaño de este búfer es de 317520 bytes. Los índices vinculados a GL_ELEMENT_ARRAY_BUFFER son 16425 cortos. El tamaño de este búfer es, por lo tanto, de 32850 bytes.

En el wiki de OpenGL, dice que "1 MB a 4 MB es un buen tamaño de acuerdo con un documento de nVidia" para un objeto búfer Vertex.

Imprimí el resultado de glGetError después de vincular cada objeto de búfer y llamar a glDrawElements, y no veo ningún error. Sin embargo, mis mallas no se muestran correctamente. Parece que solo la primera malla se dibuja correctamente. ¿Hay algo sospechoso en la forma en que he implementado esto? No quería hacer esta pregunta demasiado tiempo, así que si hay información adicional que necesita para responder esta pregunta, hágamelo saber. Si no hay nada en teoría que parezca incorrecto, quizás haya cometido un error al implementarlo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta