基于GPUImage模仿抖音灵魂出窍效果

灵魂出窍.gif

我们针对这个效果分析下实现的思路。
1.底部的视频大小没有变化。
2.上面有一个放大缩小的视频,然后带点透明度。
参看前面的实现方案基于GPUImage模仿抖音放大缩小效果 稍微改下shader就可以了。

fragmentShader实现效果如下

NSString *const kGLImageSoulOutFragmentShaderString = SHADER_STRING
(
 precision highp float;
 varying vec2 textureCoordinate;
 uniform float scale;//缩放比
 
 uniform sampler2D inputImageTexture;
 
 void main()
 {
     
     highp vec2 uv = textureCoordinate;
     
     vec4 originColor = texture2D(inputImageTexture, uv);
     //uv坐标的中心点并非是(0.0,0.0),所以这里进行一次偏移,后面在偏移回来就可以了
     vec2 center = vec2(0.5, 0.5);
     uv -= center;
     uv = uv / scale;
     uv += center;
     vec4 overlayColor = texture2D(inputImageTexture, uv);
     
     //线性混合
     vec4 color = mix(originColor,overlayColor,fract(scale)*0.2);
     gl_FragColor = color;
     
 }
 );

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容