查询统一块对象内

时间:2015-12-21 12:10:29

标签: opengl opengl-es

我正在尝试在我的UBO中设置一些结构,但在查询我添加的结构上的位置时,我得到的值无效。

我修改此示例以查看其工作原理。

https://www.packtpub.com/books/content/opengl-40-using-uniform-blocks-and-uniform-buffer-objects

所以我基本上补充道:

struct LightParameters
{
    vec3 pos;
};

layout (std140) uniform BlobSettings
{
  vec4      InnerColor;
  vec4      OuterColor;
  float     RadiusInner;
  float     RadiusOuter;

  LightParameters   lightParam;
};
然后我尝试了:

// Query for the offsets of each block variable
const GLchar *names[] =
{
    "InnerColor", "OuterColor", "RadiusInner", "RadiusOuter", "pos",
};

glGetUniformIndices(shaderLight.programId, 4+1, names, uniformBlock.loc);

其中uniformBlock.loc只是一个位置数组GLuint [5],但是通过uniformBlock.loc [4]在调用后无效,这只是我添加的结构。

有人能指出我正确的方向吗?

0 个答案:

没有答案