如何在cpp代码中访问着色器的struct变量?

时间:2017-06-26 23:03:17

标签: c++ opengl struct glsl

我在着色器文件中定义了一个结构:

struct data_t{ 
    float value;
    float baz[3];    
}

然后我在同一个着色器中声明了一个统一变量:

uniform data_t data;

我的问题是,如何使用cpp代码中的值提供变量?

我尝试了thisthis的解决方案,即访问:

glGetUniformLocation(program, "data.value")

它应该有用,但它没有,我一直都是-1。

我也试过使用UBO,看起来UBO只在我这样声明时起作用:

layout (std140) uniform data_t{
   float value;
   float baz[3];
}data;

那么我应该如何使用来自cpp的值来提供它们呢?

0 个答案:

没有答案