Передача массива структур в шейдер OpenGL ES 2.0
Я хочу реализовать какое-то освещение. И я делаю структуру, которая содержит свойства источника света в вершинном шейдере:
struct Light
{
vec4 color;
vec4 pos;
...
};
В моем приложении я хочу иметь несколько источников света. Итак, я положил:
uniform Light[10];
Как я могу загрузить эти формы из приложения? Это хороший подход или лучше иметь:
uniform vec4 LightColor[10];
uniform vec4 LightPos[10];
...
1 ответ
Решение
Я думаю, что вы не можете передавать структуры шейдерам OpenGL ES. Пожалуйста, проверьте это ТАКОЕ обсуждение, которое, кажется, подтверждает это:
Передача собственной структуры в шейдер opengl es 2.0
Я думаю, что безопаснее использовать ваше второе предложение, основанное на массивах униформы vec4.