⻢赛克效果
- “⻢赛克效果”就是把图⽚的⼀个相当⼤⼩的区域⽤同⼀个点的颜⾊来表示,可以认为是⼤规模的降低图像的分辨率,⽽让图像的⼀些细节隐藏起来。
无马赛克滤镜
- “无滤镜”效果的实现准备工作的代码与“无分屏滤镜”中的实现逻辑和流程一致,只需要修改相应的底部item数组及对应的着色器名称等,这里不再说明这部分内容,顶点着色器也没有任何变化,主要是针对片元着色器中GLSL代码的实现滤镜算法做具体的说明和实现;
- 具体流程请参考:OpenGL ES之GLSL实现“分屏滤镜”效果
方形马赛克滤镜
一、效果展示
二、实现原理
① 滤镜算法
- 根据纹理坐标计算实际图像中的位置,相当于将纹理颜色区放大;
- 计算出一个小马赛克的坐标,即找到马赛克提取颜色值的像素点;
- 将马赛克坐标换算回纹理坐标,即将纹理颜色区缩小;
② 计算过程
- 计算图像的实际位置
假设纹理坐标为(0,0)、(1,0)、(0,1)、(1,1), 纹理图片的大小为(400,400), 那么实际图片的位置为(0,0)、(0,400)、(400,0)、(400,400);