@ Ответ на ТОМАМ является наиболее полезным, так как поиск текстур является самым дорогостоящим, если его решение возможно в вашем приложении. Если вы уже используете эти текстуры где-нибудь еще, лучше передавайте значения в качестве параметров, чтобы избежать дублирования поиска.
Else Я не знаю, можно ли это оптимизировать так много, но некоторые прямые вещи, которые приходят мне на ум.
Оптимизация компилятора:
Присвоить сопзЬ ключевое слово коорд параметр, если можно попробовать тоже.
Назначьте литерал f в каждом поплавком элементе.
Может вручную назначить мат
Я не знаю, если его быстрее, потому что я не знаю, как реализуется матрица умножения, но так как постоянная матрица фактор содержит множество единиц и нулей это может быть, может быть вручную назначены.
vec3 calculate(const in vec2 coord)
{
//not 100% sure if that init is possible
const vec3 sample = vec3(texture2D(texture_a, coord).r
texture2D(texture_b, coord).ra - 0.5f);
vec3 result = vec3(sample.y);
result.x += sample.x + sample.z;
result.y += 2.112f * sample.x;
result.z *= 2.18f;
result.z -= 2.21f * sample.z;
return result;
}