我在着色器文件中定义了一个结构:
struct data_t{
float value;
float baz[3];
}
然后我在同一个着色器中声明了一个统一变量:
uniform data_t data;
我的问题是,如何使用cpp代码中的值提供变量?
glGetUniformLocation(program, "data.value")
它应该有用,但它没有,我一直都是-1。
我也试过使用UBO,看起来UBO只在我这样声明时起作用:
layout (std140) uniform data_t{
float value;
float baz[3];
}data;
那么我应该如何使用来自cpp的值来提供它们呢?