javascript - 使用着色器在 Canvas 上实现镜像效果 (webgl)

标签 javascript canvas webgl shader

我正在尝试了解有关如何在 webgl 中使用着色器的更多信息。目前我将尝试对图像应用“镜像”效果。 如果我使用普通 Canvas ,我可以通过简单地调用来完成此操作: 规模(1,-1);

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

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

最佳答案

尝试这样的方法(或 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

关于javascript - 使用着色器在 Canvas 上实现镜像效果 (webgl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880618/

相关文章:

javascript - NodeJS Puppeteer setDownloadBehavior 问题

javascript - 带有 for 循环的对象构造函数不起作用

c# - 将带有 alpha channel 的图像复制到带有自定义背景颜色的剪贴板?

jquery - 使用 jQuery 定位 Canvas

javascript - 组件不在 .map forEach 中呈现

javascript - 尝试读取 xml 文件时出现 AJAX 错误

canvas - JavaScript 库 - WebGL-2D 动画不工作

three.js - 是否可以让雾与 Material 的不透明度相互作用?

javascript - 浏览器无法处理大 JSON

javascript - Three.js:无法设置最大和最小缩放级别