您现在的位置是:首页 > 正文

OpenGL ES 3.0 开发(十九):相机抖音滤镜

2024-02-01 02:08:14阅读 2

该原创文章首发于微信公众号:字节流动

OpenGLES 相机抖音滤镜

最近几篇文章主要是利用 OpenGL 实现相机预览的一些常见的滤镜,上一篇主要介绍了 LUT 滤镜的原理及简单实现方法,而本文主要介绍抖音短视频 App 里面一些常见滤镜的实现,这里只做抛砖引玉,玩滤镜主要靠想象力去实现一些酷炫的效果。

分色偏移

在这里插入图片描述
分色偏移滤镜原理:基于原纹理坐标进行偏移,分别采样后再按照 RGBA 通道进行合成,组成一个新的颜色。

//分色偏移
#version 100
precision highp float;
varying vec2 v_texcoord;
uniform lowp sampler2D s_textureY;

网站文章

  • 【图片素材】小程序图片

    【图片素材】小程序图片

    iconfont 阿里巴巴矢量图标库iconfont-阿里巴巴矢量图标库https://www.iconfont.cn/

    2024-02-01 02:08:07
  • ansible点对点模块练习

    ping模块[root@S01 ~]# ansible all -m ping192.168.137.129 | SUCCESS => { "changed": false, "ping": "pong"}command模块[root@S01 ~]# ansible web -m command -a 'chdir=/tmp ls'192.168.137...

    2024-02-01 02:07:36
  • 关于MyBatis 一级缓存详解

    关于MyBatis 一级缓存详解

    缓存就是内存中的一个对象,用于对数据库查询结果的保存,用于减少与数据库的交互次数从而降低数据库的压力,进而提高响应速度。MyBatis 中的缓存就是说 MyBatis 在执行一次SQL查询或者SQL更...

    2024-02-01 02:07:30
  • Python如何获取动态加载的数据呢 ?

    Python如何获取动态加载的数据呢 ?

    我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是通过非浏览器地址栏中得url请求到的地址。而是其他请求请求到的数据,那么这些通过其他请求请求到的数据就是动态加载的数据。(猜测有可能是js代码当咱们访问此页面时就会发送得get请求,到其他url中获取数据)

    2024-02-01 02:07:23
  • linux安装tensorflow

    linux安装tensorflow

    linux安装tensorflow

    2024-02-01 02:07:18
  • C#中get与set

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication16{ class Program { static void Main(...

    2024-02-01 02:06:51
  • JavaScript实现单页面应用程序和浏览器返回按钮的关联

    场景描述:页面中实现整个页面的内容的替换,但是不使用我们常用的页面【跳转】,【跳转】也就不符合单页面的诉求。事实上单页面的内容切换也是和局部的内容切换一样,同样使用页面DOM元素的CSS属性中的【显示】和【隐藏】来控制。但当新的页面没有返回按钮时,就需要和浏览器的按钮实现绑定,则需要用到history对象的pushstate方法和popstate的监听方法。话不多说,来一个简单的案例予以展示。

    2024-02-01 02:06:44
  • JAVA开发(外部接口调用授权问题记录总结)

    JAVA开发(外部接口调用授权问题记录总结)

    现在很多web项目或者小程序在上线后都需要进行交叉引流,交叉业务合作,数据传输,与其他的企业,网站,app合作。那么就需要接口数据调用。那么在做外部系统接口调用和自己开发的微服务间的接口调用显然是不同...

    2024-02-01 02:06:37
  • poj 2828 线段树插孔处理

    简单线段树

    2024-02-01 02:06:09
  • 正则的扩展

    正则的扩展RegExp构造函数ES5中的构造函数的参数有两种情况参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)var regex = new RegExp('xyz', 'i');//...

    2024-02-01 02:06:03