Ваша самая большая проблема в том, что вы смотрите на настольные шейдеры GLSL и пытаетесь выяснить, что это значит для GLSL-ES.
Так же, как OpenGL ES - это не то же самое, что OpenGL, GLSL-ESэто не то же самое, что GLSL.GLSL продвинулся довольно далеко за многие годы, прошедшие после разделения GLSL-ES.Таким образом, вы не можете использовать настольные шейдеры GLSL как нечто большее, чем грубое руководство по реализации шейдеров GLSL-ES.Более, чем вы могли бы использовать тексты C ++ в качестве руководства для C.
Языки очень похожи, но настольному GLSL пришлось отказаться от многих ключевых слов, которые GLSL-ES еще не исключил.Точно так же GLSL старой школы (1.20) реализовал много вещей, которые удалили GLSL-ES и более поздние версии GLSL, такие как встроенные входы и выходы.Таким образом, вы увидите много настольных шейдеров GLSL, которые не будут работать на GLSL-ES.В самом деле, если вы найдете что-то такое, это произойдет только случайно.
Я не очень разбираюсь в руководствах по GLSL-ES, но проще всего найти и использовать окончательный источник: Спецификация языка шейдинга OpenGL ES (PDF) .Расширения могут накапливаться по функциональности, но этот PDF определяет основной язык.Ваша следующая ставка - любой материал, явно помеченный как специфичный для OpenGL ES 2.0.
По сути, хотя вы можете понять, что делает настольный шейдер GLSL, лучше всего взглянуть на алгоритм, а не на синтаксис, если выпереписываю приложение OpenGL ES 2.0.