Передача массива структур в шейдер 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.

Другие вопросы по тегам