Я начинающий шейдер и пытаюсь отобразить видео mp4 в трех js с альфа-каналом (верхняя половина - видео, нижняя половина - альфа) * 1001 *
Я попробовал пользовательский шейдер (см. Ниже) , Это работает, но ... делает прозрачными также и объекты. Я попытался сбросить, основываясь на альфа-значении, но это делает рендеринг не таким плавным.
Есть идеи?
Спасибо,
Микаэль
THREE.ShaderLib['custom'] = {
vertexShader: [
"varying vec2 vUv;",
"void main() {",
"vUv = uv;",
"gl_PointSize = 8.0;",
"gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
"}",
].join("\n"),
fragmentShader: [
"varying vec2 vUv;",
"uniform sampler2D texture;",
"void main() {",
"float v=vUv.y*0.5;",
"vec4 alpha=texture2D(texture, vec2(vUv.x,v));",
"vec4 result = texture2D(texture, vec2(vUv.x,0.5+v));",
"result.a=alpha.r;",
"gl_FragColor = result;",
"}",
].join("\n")
};