Я экспериментирую с шейдерами с GLSL, но получаю забавную ошибку, когда пытаюсь извлечь данные из текстуры, чтобы попробовать простой алгоритм улучшения контраста.
'texture2D' : no matching overloaded function found
Это происходит с этим кодом, где "final "- это переменная vec4 для хранения цвета над которым мы работаем.Идея здесь состоит в том, чтобы оттолкнуть цвет пикселя дальше от окружающих (экспериментальная идея).Я отмечу строку в коде с ошибкой.
highp vec4 tex = texture2D(tex,vec2(texcoord.x+1.0,texcoord.y));
highp float total = tex.r + tex.g + tex.b;
tex = texture2D(tex,vec2(texcoord.x-1.0,texcoord.y)); <----This one as well as the next similar lines
total += tex.r + tex.g + tex.b;
tex = texture2D(tex,vec2(texcoord.x,texcoord.y+1.0));
total += tex.r + tex.g + tex.b;
tex = texture2D(tex,vec2(texcoord.x,texcoord.y-1.0));
total += tex.r + tex.g + tex.b;
highp float di = 12.0;
highp vec4 close_av = total/di;
final = (final - close_av)*1.3+close_av;
Почему это не работает?Спасибо.