靈魂出竅.gif
我們針對這個效果分析下實現(xiàn)的思路帐偎。
1.底部的視頻大小沒有變化。
2.上面有一個放大縮小的視頻蛔屹,然后帶點透明度削樊。
參看前面的實現(xiàn)方案基于GPUImage模仿抖音放大縮小效果 稍微改下shader就可以了。
fragmentShader實現(xiàn)效果如下
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坐標(biāo)的中心點并非是(0.0兔毒,0.0)漫贞,所以這里進(jìn)行一次偏移,后面在偏移回來就可以了
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;
}
);