OpenGLES滤镜开发汇总 —— 上下分镜以及左右分镜

2018-09-09  本文已影响251人  cain_huang

上下分镜的fragment shader 如下:

varying highp vec2 textureCoordinate;

uniform sampler2D inputImageTexture;

void main() {
    vec2 uv = textureCoordinate;
    if (uv.y < 0.5) {
        uv.y = 1.0 - uv.y;
    }
    gl_FragColor = texture2D(inputImageTexture, fract(uv));
}

实现效果如下:


上下分镜

同样地,我们可以通过改变UV坐标的x轴来得到左右分镜:

varying highp vec2 textureCoordinate;

uniform sampler2D inputImageTexture;

void main() {
    vec2 uv = textureCoordinate;
    if (uv.x > 0.5) {
        uv.x = 1.0 - uv.x;
    }
    gl_FragColor = texture2D(inputImageTexture, fract(uv));
}
上一篇 下一篇

猜你喜欢

热点阅读