Максимальный размер для объектов буфера вершины (OpenGL ES 2.0)

Есть ли максимальный размер для объектов буферов вершин, связанных с GL_ARRAY_BUFFER или GL_ELEMENT_ARRAY_BUFFER ???

Первоначально я рисовал сетку, состоящую из 16 приборов. Для каждого созревания я создал буфер вершины и во время фазы рендеринга я позвонил Gldrawelements. Это отлично работало на симуляторе iOS, но когда я попытался сделать на своем устройстве, экран постоянно мигает, а сетки не отображаются.

Я тогда сделал несколько чтений и обнаружил, что вы не должны вызывать Gldrawelements слишком много раз во время рендеринга. Я пытался объединить все мои пристройки в один буфер вершины. Буфер, связанный с GL_ARRAY_BUFFER, содержит 3969 вершин, где каждая вершина содержит 20 поплавок. Таким образом, размер этого буфера составляет 317520 байтов. Индексы, связанные с GL_Element_array_Buffer, являются 16425 шорты. Поэтому размер этого буфера является 32850 байтами.

На Wiki OpenGL он говорит, что «1 МБ до 4 МБ - это хороший размер в соответствии с одним документом NVIDIA» для объекта буфера вершины.

Я напечатал результат GlgetError после привязки каждого буферного объекта и вызов Gldrawelements, и я не вижу ошибок. Однако мои сетки не отображаются правильно. Кажется, что только первая сетка становится правильно нарисована. Есть ли что-нибудь рыбное в том, как я реализовал это? Я не хотел делать этот вопрос слишком долго, поэтому, если есть дополнительная информация, необходимая вам возможность ответить на этот вопрос, дайте мне знать. Если в теории нет ничего, что кажется неверным, возможно, я только что допустил ошибку в реализации.

10
задан Graham Asher 15 September 2017 в 15:40
поделиться