有可能得到这个吗;“色度偏移”;OpenGL着色器的效果
我希望能够产生这种效果,具体来说,就是颜色爬行/颜色偏移 OpenGL着色器是否可以实现这一点,或者我是否需要使用其他技术 我是OpenGL新手,我想尝试一下作为入门练习,但是如果有更好的方法,最终我想产生这种效果 仅供参考,我正在使用Cinder作为我的OpenGL框架有可能得到这个吗;“色度偏移”;OpenGL着色器的效果,opengl,bitmap,shader,Opengl,Bitmap,Shader,我希望能够产生这种效果,具体来说,就是颜色爬行/颜色偏移 OpenGL着色器是否可以实现这一点,或者我是否需要使用其他技术 我是OpenGL新手,我想尝试一下作为入门练习,但是如果有更好的方法,最终我想产生这种效果 仅供参考,我正在使用Cinder作为我的OpenGL框架 我知道这并不是很多信息,但我甚至很难找到这个效果的真正名称,所以我无法在谷歌上搜索它。我无法帮助您确定效果的名称,但我有一个产生这种效果的想法。我的理解是,每个颜色分量都有一定程度的偏移。将单个颜色分量从右向左简单平移,即可
我知道这并不是很多信息,但我甚至很难找到这个效果的真正名称,所以我无法在谷歌上搜索它。我无法帮助您确定效果的名称,但我有一个产生这种效果的想法。我的理解是,每个颜色分量都有一定程度的偏移。将单个颜色分量从右向左简单平移,即可生成黑白原始图像: 获取所需图像的步骤
不要使用像素着色器,而是在OpenGL上使用ADD函数进行混合。在附加纹理的情况下渲染3次相同的全屏四边形,每次使用纹理矩阵偏移查找。每个过程都会对输出颜色蒙版进行不同的遮罩,得到相同的结果:过程1=>红色,过程2=>绿色,过程3=>蓝色。您要寻找的效果称为“色度放大”,您可以在维基百科上查到它。你们已经得到了一个解决方案,但我认为作为一名物理学家,我有责任让你们对正在发生的事情有更深入的理解,以及如何将效应推广 请记住,每个相机都有一些光圈,光通常被描述为波。波与孔径的相互作用称为衍射,但从数学上讲,它只是波函数与孔径函数的傅里叶变换的卷积。衍射取决于波长,因此这会根据颜色产生空间偏移。另一个影响因素是色散,即依赖于波长的折射。同样,衍射可以用卷积来描述 现在卷积可以链接起来,产生一个完整的卷积内核。在高斯模糊滤波器的情况下,卷积核是在所有信道中相同的高斯分布。但是每个目标通道可以有不同的卷积核。@bernie建议的实际上是盒卷积核,在每个通道中移动几个像素 这是一个很好的关于GLSL卷积滤波的教程。也可以使用for循环,而不是展开循环。
我建议你使用一些高斯形状的内核,红色和蓝色的模糊度比绿色强,当然中心点会稍微移动。GeexLab有一个彩色缩写的演示,源代码在他们的着色器库中。仅供参考:你要找的名称是“彩色条纹”、“色差”和“颜色移动”。这三个词都指同一件事。很难找到关于如何产生这种效果的信息,但是有很多关于如何移除它的信息。幸运的是我找到了这个@米格尔-我也见过它被称为色度爬行或色度偏移,但那是很久以前的事了,1983年左右。它被称为色度缩写,它也适用于彩色图像。我希望我能把这两个回答都标记为答案,谢谢。