Я пытаюсь использовать Android Color Matrix в OpenGL ES 2. Я был в состоянии использовать 4x4 Matrix с помощью следующего кода в шейдере (это добавляет также параметр интенсивности):Использование Android 4x5 ColorMatrix в OpenGL ES 2 Shader
varying vec2 textureCoordinate;
uniform lowp mat4 colorMatrix;
uniform lowp float intensity;
void main()
{
vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
vec4 outputColor = textureColor * colorMatrix;
gl_FragColor = (intensity * outputColor) + ((1.0 - intensity) * textureColor);
}
Но я борюсь за то, как я мог преобразовать матрицу Android 4x5 в матрицу vec4, которую можно использовать в шейдере. Меня не интересует канал Альфа.
Это работает как шарм, это тот же подход, я за считанные минуты до чтения вашего сообщения в источниках Android ColorFilter.cpp (где они должны делать то же самое, что и HW, ускоренное полотно). Благодаря! – FrankMonza