Еще раз у меня проблема с моим вычислительным шейдером ... Я хотел бы передать структуру, содержащую указатель, в вычислительный шейдер. Это мой пример структуры:Указатель на структуру ввода Compute Shader
struct couleurStruct {
float r;
float g;
float b;
float a;
float *x;
};
Вот моя инициализация SSBO:
couleurStruct *coul;
coul = (couleurStruct *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(couleurStruct), bufMask);
//coul->x = (float *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(float), bufMask);
coul->r = 0.0;
coul->g = 1.0;
coul->b = 0.0;
coul->a = 1.0;
coul->x[0] = 0.5;
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 4, structBuffer);
Я пробовал много разных инициализации, но без успеха ...
Итак, есть ли способ для выделения всей необходимой памяти (потому что я знаю память, которая мне понадобится внутри каждого из массивов, отмеченных моими указателями) и передать ее в вычислительный шейдер? Или действительно невозможно передать указатель на вычислительный шейдер?
Благодарим за помощь!
Еще раз спасибо! Поэтому я буду менять свои указатели как статические массивы ... Конечно, приведенный выше код - это всего лишь тестовый код, а не тот, над которым я действительно работаю. – bRiocHe