У меня возникли проблемы с доступом к массиву в шейдере фрагментов с использованием не константного int в качестве индекса. Я удалил формулу, так как в любом случае это не имеет особого смысла, но мой код предназначен для вычисления tileID на основе текущего пикселя и использования этого для определения цвета.
Здесь мой код:
int tileID = <Insert formula here>;
vec3 colorTest;
int arrayTest[1024];
for (int x = 0; x < 1024; x++) {
if (x == 1) arrayTest[x] = 1;
else arrayTest[x] = 2;
}
if (arrayTest[tileID] == 1) colorTest = vec3(0.0, 1.0, 0.0);
else if (arrayTest[tileID] == 2) colorTest = vec3(1.0, 0.0, 0.0);
else colorTest = vec3(0.0, 0.0, 0.0);
По-видимому, GLSL не нравится, и я получаю сообщение об ошибке:
'[]': Индексное выражение должно быть постоянным
Кто-нибудь знает, как я это исправим? Спасибо.