У меня разные сетки с разными VBO, у некоторых может быть нормаль, у некоторых нет, и т. Д. c. Каждый я sh также имеет свой VAO со всеми связанными VBO.
Затем я рисую все сетки с помощью экземпляров. Я планирую использовать общий глобальный VBO mat4 для хранения динамически вычисляемых преобразований в каждом кадре. Каждый ВАО также должен указать на этот общий VBO дополнительно. Также количество каждого экземпляра me sh может варьироваться.
Но я думаю, что мы хотим уменьшить количество команд загрузки данных в GPU, поэтому я хочу собрать все матрицы в непрерывной памяти и отправить их в одной команде glBufferSubData.
Разные партии разных экземпляров сеток хотят использовать разные сегменты общего VBO для чтения матриц из. Поэтому мне нужно обновить VAO для каждого кадра.
Вопрос в том, как мне сделать это лучше? И действительно ли такая архитектура хороша? Я полагаю, что я должен использовать glBindVertexBuffer для общего VBO на каждом VAO, поэтому я обновляю смещение и размер сегментов, и VAO упрощаются, но действительно ли это стандартное решение?