gpt4 book ai didi

html - 如何将像素着色器应用于 Canvas 元素?

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:51 26 4
gpt4 key购买 nike

我有一个 <canvas>由外部库写入的元素。我希望对此 Canvas 应用“后期制作”效果:我想映射一个函数 (r,g,b,a) -> (r,g,b,a)在最终显示之前遍历每个像素。

我知道外部库写入从 <canvas> 获得的二维上下文元素。我也知道我要求的转换是“像素着色器”或“片段着色器”。我知道我需要一个 webgl上下文应用这样的着色器。 this answer告诉我一个 Canvas 不能同时有多个上下文,所以我不确定这种方法是否可行。

我考虑的另一种方法是将 Canvas 的输出捕获为流,然后将其写入应用了我的转换的新 Canvas 。然而,this feature only exists in bleeding-edge Firefox .

是否可以将片段着色器应用于 Canvas 输出?如果是,怎么做?

最佳答案

您可以将 2D Canvas 复制到 WebGL 纹理,然后使用您设计的任何片段着色器将该纹理渲染到 WebGL Canvas 。

有很多关于使用 Canvas 作为纹理源数据的堆栈溢出的例子

How Do I Use an HTML5 Canvas as a WebGL Texture

how to get texture in webgl?without Canvas.toDataUrl()

Blend two canvases onto one with WebGL

WebGL blit texture to canvas

关于html - 如何将像素着色器应用于 Canvas 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com