Я работаю над обработкой видео Android Project As My School Project.У меня есть поиск в Google по поводу обработки видео.И обнаружил, что большинство разработчиков используют файл GLSL для манипуляции видео / изображениями в Android.они используют векторные шейдеры и фрагментные шейдеры, но я не понял этот код.Может ли кто-нибудь объяснить код glsl.
Я не получил этот код:
precision highp float;
uniform sampler2D inputImageTexture;
uniform sampler2D inputImageTexture2;
varying vec2 textureCoordinate;
void main()
{
vec4 video = texture2D(inputImageTexture, textureCoordinate);
vec4 mv = texture2D(inputImageTexture2, textureCoordinate);
gl_FragColor = video + mv;
}
precision highp float;
uniform sampler2D inputImageTexture;
uniform sampler2D inputImageTexture2;
uniform sampler2D inputImageTexture3;
varying highp vec2 blurCoordinates[5];
void main()
{
lowp vec4 sum = vec4(0.0);
sum += texture2D(inputImageTexture, blurCoordinates[0]) * 0.204164;
sum += texture2D(inputImageTexture, blurCoordinates[1]) * 0.304005;
sum += texture2D(inputImageTexture, blurCoordinates[2]) * 0.304005;
sum += texture2D(inputImageTexture, blurCoordinates[3]) * 0.093913;
sum += texture2D(inputImageTexture, blurCoordinates[4]) * 0.093913;
vec3 texel = texture2D(inputImageTexture, blurCoordinates[0]).rgb;
vec2 tc = (2.0 * blurCoordinates[0]) - 1.0;
float d = dot(tc, tc);
vec2 lookup = vec2(d, texel.r);
texel.r = texture2D(inputImageTexture3, lookup).r;
lookup.y = texel.g;
texel.g = texture2D(inputImageTexture3, lookup).g;
lookup.y = texel.b;
texel.b = texture2D(inputImageTexture3, lookup).b;
vec2 red = vec2(texel.r, 0.16666);
vec2 green = vec2(texel.g, 0.5);
vec2 blue = vec2(texel.b, .83333);
float r = texture2D(inputImageTexture2, red).r;
float g = texture2D(inputImageTexture2, green).g;
float b = texture2D(inputImageTexture2, blue).b;
lowp vec4 sharpImageColor = vec4(r,g,b,1.0);
lowp vec4 blurredImageColor = sum;
highp float distanceFromCenter = distance(vec2(0.5,0.5), blurCoordinates[0]);
gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(0.4, 0.5, distanceFromCenter));
}
, и я не понял, как использовать этот код в Android