http://www.khronos.org/registry/webgl/specs/latest/#DYNAMIC_INDEXING_OF_ARRAYS "WebGL consente solo l'indicizzazione dinamica con espressioni costanti, indici di loop o una combinazione.L'unica eccezione è per l'accesso uniforme nei vertex shader, che può essere indicizzato utilizzando qualsiasi espressione."
Hai provato? Se non ha funzionato, ci sono un paio di opzioni.
Se si dispone di un numero ridotto di valori, if-else potrebbe funzionare correttamente. AFAIK i valori uniformi verranno comunque caricati nei registri, quindi fare una dozzina di cicli di matematica su di loro non renderà il tuo shader molto più lento.
Per un numero elevato di valori, le trame sono la soluzione migliore.
fonte
2011-06-06 09:43:12
è una soluzione alternativa: '/ * dato variabile i è l'indice */for (int x = 0; x