Отправка структуры с массивом в качестве SSBOC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Отправка структуры с массивом в качестве SSBO

Сообщение Anonymous »

Я работаю над движком вокселей в OpenGL и хочу найти способ отправлять фрагменты в шейдер
Я знаю, что существуют действительно эффективные методы и структуры данных для отправки вокселей например, Sparse Voxel Octrees, но я хочу начать с простого, только с одного фрагмента.
В C++ чанк определяется как:

Код: Выделить всё

struct Chunk {
alignas(4) int voxelNum;
alignas(4) float voxelSize;
alignas(4) float chunkSize;
alignas(16) glm::vec4 position;
bool grid[16 * 16];
};
SSBO выглядит следующим образом в glsl:

Код: Выделить всё

struct Chunk {
int voxelNum;
float voxelSize;
float chunkSize;
vec4 position;
bool grid[16 * 16];
};

layout (std140)  uniform ChunkData {
Chunk chunk;
};
А данные отправляются так:

Код: Выделить всё

GLuint buffer;
glGenBuffers(1, &buffer);
glBindBuffer(GL_UNIFORM_BUFFER, buffer);
glBufferData(GL_UNIFORM_BUFFER, sizeof(Chunk), &chunk, GL_STATIC_DRAW);
Я протестировал код, и он отлично работает для всех переменных вплоть до массива Grid[]. Здесь правильный только первый элемент.
Как с этим справиться? Точнее, как я могу отправить одну подобную структуру из моего кода C++ в шейдер?

Подробнее здесь: https://stackoverflow.com/questions/791 ... as-an-ssbo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница между проходящим массивом, массивом фиксированного размера и базовым адресом массива в качестве параметра функци
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как создать SSBO с динамическим размером
    Anonymous » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как создать SSBO с динамическим размером
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Только один рендеринг текселей во время массового пакетного рендеринга с использованием SSBO.
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Привязка одного буфера к нескольким индексированным целям SSBO одновременно
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»