使用着色器(webgl)在画布上的镜像效果

时间:2014-07-22 06:47:49

标签: javascript canvas webgl shader

我正在尝试了解有关如何在webgl中使用着色器的更多信息。目前,我将尝试使用"镜像"影响到一个immage。 如果我使用普通画布,我可以通过简单地调用: 规模(1,-1);

结果是这样的(从维基百科复制) enter image description here

使用着色器是否有一种很好的方法来应用此效果?

1 个答案:

答案 0 :(得分:2)

尝试这样的事情(或X坐标转换的变体:))

void main(void)
{
    vec2 uv = gl_FragCoord.xy / iResolution.xy;
    gl_FragColor = texture2D(iChannel0, vec2(abs(0.5 - uv.x), uv.y));
}

以下是Shadertoy中的上述图片。只需将纹理或视频分配到iChannel0。

Screenshot of mirror shader