我想实现某种照明。我正在制作一个结构,它包含顶点着色器中的光源属性:
struct Light
{
vec4 color;
vec4 pos;
...
};
在我的应用程序中,我想要几个光源。所以我说:
uniform Light[10];
如何从应用程序加载这些制服?拥有是一种好方法还是更好:
uniform vec4 LightColor[10];
uniform vec4 LightPos[10];
...
答案 0 :(得分:3)
我认为你无法将结构传递给OpenGL ES着色器。 请查看似乎证实它的SO讨论:
Passing own struct into opengl es 2.0 shader
我认为使用基于vec4制服阵列的第二个提案更安全。