Shadertoy не поддерживает хранение переменных. В этом вся суть. Shadertoy - забавная головоломка из «как сделать красивые картинки, не используя ничего, кроме функции, которая принимает на вход только позицию и время в пикселях» . Это не отдаленно о лучших практиках или гибком программировании с переменными. Дело в том, что это сложно, и в этом смысл, как в «О Боже! через рамки вы должны написать текстуру. Вы выбираете местоположения в текстуре для каждой вещи, которую хотите сохранить, и затем пишете соответствующий код шейдера для чтения
vec4 values = textureFetch(texture, pixelCoordOfVariable, 0);
и записи
if (int(gl_FragCoord.x) == pixelCoordOfVariable.x &&
int(gl_FragCoord.y) == pixelCoordOfVariable.y) {
fragColor = valueToStore;
}
Производительные и гибкие приложения WebGL обычно не использовать приемы по шадертой.