关于透明MP4礼物的构思和实现

可以可以 大佬这个是2.4x的版本吗?能不能给我个demo

你这公式不都写出来了:

gl_FragColor = vec4( texture2D(texture, vec2(vUv.x/2, vUv.y)).rgb, texture2D(texture, vec2(0.5 + vUv.x/2, vUv.y)).r );

才疏学浅,一知半解,总会卡东西,一直没有成功,救就胡乱的认为可能成功不了

大佬大佬就是这玩意

https://test-1252163606.cos.ap-chengdu.myqcloud.com/NewProject_9.zip

2赞

大佬给个demo,我把你的跟下面大佬的融合一下

太牛了。大佬就是这玩意,大赞


大佬这里有个报错

你自己慢慢研究吧,我还要上班

这不就是透明视频吗,前端和客户端用的挺频繁的

好的谢谢大佬

是,但是确实好难实现啊,大佬有时间帮忙看看下

js、ts版本都行

视频显示ui.rar (2.7 KB) 搞出来了踢我一下

用ai写了个webgl, 不会用creator,是这么写么? 图片换成你自己的再改改

test.html.zip (2.4 KB)

precision mediump float;
varying highp vec2 vTextureCoord;
uniform sampler2D uSampler;
void main(void) {
vec4 leftColor = texture2D(uSampler, vTextureCoord);
if (vTextureCoord.x < 0.5) {
vec4 rightColor = texture2D(uSampler, vec2(vTextureCoord.x + 0.5, vTextureCoord.y));
gl_FragColor = vec4(leftColor.rgb, rightColor.r);
} else {
discard;
}
}

对这个是核心

其实是coco-mat 的软解video是关键点,只要video能渲染到纹理,那怎么样操作都可以了。
把纹理拿到一个四边形上渲染,然后材质用上你的shader就行了。

大佬 问题解决了吗?

问题解决了。方法是把视频渲染到图片上,然后通过shader来改图片 。vec4 frag () {
vec4 o = vec4(1, 1, 1, 1);

#if USE_TEXTURE
    
  o *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0 * vec2(0.5,1));
  o.a *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0 * vec2(0.5,1) + vec2(0.5,1)).r;

#endif

o *= color;
ALPHA_TEST(o);
return o;

}