OpenGL UBO, содержащий большой массив целых чисел

Я переключился с ненужных атрибутов вершин памяти на UBO, чтобы использовать гораздо меньше памяти. Я хочу создать большой буфер (содержащий более 1024 * 1024 значений), содержащий данные о данной модели. Далее для каждой модели я бы оставил программный и вершинный буфер (так как меш одинаковый) и изменил UBO для следующей модели. Таким образом, каждый UBO будет установлен один раз, и тогда только привязка будет изменена на другой буфер.

Проблема в том, что я не могу создать такой большой массив. Код как это идет хорошо:

layout(std140) uniform someDataUniform {
int someData[1201];
};

но код, подобный этому, вылетает:

layout(std140) uniform heightDataUniform {
int heightData[1201*1201];
};

Есть ли решение этой проблемы? Создание большого связываемого буфера с произвольным доступом по индексу? Возможно 2D массив даже (не обязательно)?

OpenGL 3.3, GLSL 330.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]