gpt4 book ai didi

opengl - 是否有可能使用 OpenGL 着色器获得这个 "chroma-shift"效果

转载 作者:行者123 更新时间:2023-12-02 19:47:03 25 4
gpt4 key购买 nike

我希望能够产生这种效果,具体来说,颜色爬行/颜色偏移。

color shift

这可以通过 OpenGL 着色器实现吗?还是我需要使用其他技术?

我是 OpenGL 新手,我想尝试将此作为入门练习,但是如果有更好的方法来做到这一点,最终我想产生这种效果。

仅供引用,我使用 Cinder 作为我的 OpenGL 框架。

我知道这不是太多信息,但我什至找不到这种效果的真正名称,所以我无法用谷歌搜索它。

最佳答案

我无法帮助您了解效果的名称,但我有一个想法来产生这种效果。我的理解是每个颜色分量都会发生一定程度的偏移。对各个颜色分量进行从右到左的简单平移就生成了黑白原始图像:

black and white image

获取所需图像的步骤

  1. 获取纹理中的源黑白图像。如果是其他渲染的结果,则将其复制到纹理。
  2. 渲染一个全屏四边形(或您想要的尺寸),纹理坐标从 (0,0) 到 (1,1) 并附加纹理。
  3. 应用片段着色器,对输入纹理进行 3 次采样,并在纹理坐标中进行不同的偏移。例如-2 个纹素、0 个纹素和 +2 个纹素偏移。如果您愿意,您可以过期并以不同的偏移量尝试更多样本。
  4. 通过仅保留每个样本的 1 个颜色分量来合并这 3 个样本。

如果性能不重要或着色器不可用,则备用

不要使用像素着色器,而是使用 ADD 函数进行 OpenGL 混合。渲染 3 次相同的全屏四边形并附加纹理,并使用纹理矩阵来偏移每次的查找。每个 channel 的输出颜色掩码都不同,您会得到相同的结果: channel 1 => 红色, channel 2 => 绿色, channel 3 => 蓝色。

关于opengl - 是否有可能使用 OpenGL 着色器获得这个 "chroma-shift"效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8237176/

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