Index-Ausdruck muss Konstante - WebGL/GLSL Fehler

Ich habe Probleme beim Zugriff auf ein array in einem fragment-shader mit einem nicht-Konstanten int als index. Ich habe entfernt die Formel als würde es nicht viel Sinn hier sowieso nicht, aber mein code ist gedacht, um die Berechnung der tileID basierend auf dem aktuellen pixel und verwenden, um zu bestimmen, die Farbe.

Hier ist mein code:

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);

Offenbar GLSL nicht so aus und ich bekomme die Fehlermeldung:

'[]' : Index-Ausdruck muss Konstante

Weiß jemand, wie ich dieses Problem beheben? Danke.

InformationsquelleAutor Joey Morani | 2013-10-22
Schreibe einen Kommentar