Доброго дня.
Не могу разобраться, как с помощью Qt передать в вычислительный OpenGL шейдер данные, которые являются не вектором объектов стандартного типа, а вектором структур.
Например в шейдере у меня есть вот такие входные данные
struct Face{
vec4 v0;
vec4 v1;
vec4 v2;
vec4 n;
int shine;
};
layout(std430, binding=1) buffer faces{
Face f[];
};
В openFramework я просто выделял буфер на основе вектора из аналогичных структур, а потом bind-ил его к шейдеру с указанием номера binding'а
В Qt конечно есть QOpenGLBuffer, но не могу понять ни как его выделить на базе вектора структур, ни как привязать его к шейдеру. Может кто-нибудь объяснить?
И как делать dispatch вычислительного шейдера? Сугубо через QOpenGLFunctions_4_3_Core или есть какая-то Qt обёртка?