将一组结构传递给OpenGL ES 2.0着色器

时间:2011-10-06 13:13:26

标签: iphone opengl-es shader opengl-es-lighting

我想实现某种照明。我正在制作一个结构,它包含顶点着色器中的光源属性:

struct Light
{
    vec4 color;
    vec4 pos;
    ...
};

在我的应用程序中,我想要几个光源。所以我说:

uniform Light[10];

如何从应用程序加载这些制服?拥有是一种好方法还是更好:

uniform vec4 LightColor[10];
uniform vec4 LightPos[10];
...

1 个答案:

答案 0 :(得分:3)

我认为你无法将结构传递给OpenGL ES着色器。 请查看似乎证实它的SO讨论:

Passing own struct into opengl es 2.0 shader

我认为使用基于vec4制服阵列的第二个提案更安全。