Colors 暗色调抖动

Colors 暗色调抖动,colors,shader,dithering,Colors,Shader,Dithering,(英语不是我的母语,已经很晚了) 几天来我一直面临着一个问题,在经历了许多失败的尝试后,我决定来这里寻求帮助或至少是一个方向 我们将讨论抖动和色带。 我不会在这里解释这些是什么,我只是假设读者已经知道了 好的,让我们从一张图片开始 在此图像上,没有抖动。色带很容易看到,如果不在墙上,至少在地板上。因为我正在生成此图像,所以在生成过程中,我确实可以获得每个像素的更高精度。 如果通道是0到255之间的整数,我可以访问5.24之类的值(重要的是“.24”-这就是我所说的“更高精度”)。 我最初的想法

(英语不是我的母语,已经很晚了)

几天来我一直面临着一个问题,在经历了许多失败的尝试后,我决定来这里寻求帮助或至少是一个方向

我们将讨论抖动和色带。 我不会在这里解释这些是什么,我只是假设读者已经知道了

好的,让我们从一张图片开始

在此图像上,没有抖动。色带很容易看到,如果不在墙上,至少在地板上。因为我正在生成此图像,所以在生成过程中,我确实可以获得每个像素的更高精度。 如果通道是0到255之间的整数,我可以访问5.24之类的值(重要的是“.24”-这就是我所说的“更高精度”)。 我最初的想法是根据像素在屏幕上的位置使用噪声。如果我们断言噪声产生值介于0和1之间,那么对于5.24,算法如下

如果(噪声(x,y)<0.24)颜色=6 其他颜色=5

我也使用了“白噪声”,我得到了这个结果

它平滑多了,但是我们得到了很高的噪音。另外,还有色带,这将是我遇到的问题。 通过将白噪声替换为“蓝色噪声”,我得到了最后一张图像

这是一个更好的噪音的结果图像,但。。。还有色带

我试图找出原因。 我想这是因为我使用了我所谓的“线性分割”或“线性梯度”或“线性插值”。。。或者“线性”的东西,但它是线性的。 这是我已经给出的公式

如果(噪声(x,y)<0.24)颜色=6 其他颜色=5

如果不是0.24而是0.5,则表示(5,5,5)和(6,6,6)的50/50混合。然而,这样的和图像将更接近(6,6,6)而不是(5,5,5)。 不知何故,我认为认为认为(0,0,0)和(1,1,1)之间的步骤与(200200200)和(201201201)之间的步骤相同是错误的。 我认为它不应该被认为是一个加法,而是一个比率。 上面的公式并没有真正考虑到“5”(5.24和200.24的行为方式相同)

我不知道我是否解释得很好,而且已经很晚了

总结一下,我正在寻找一个考虑到 不仅仅是“.24”部分 不仅仅是像素的位置 还有“5”部分

我认为某个地方有一个指数(因为光学中总是有指数),结果将取决于监视器(我要寻找的是与cymk的关系,而不是与rgb的关系)


但是,还有什么我能做的吗?这种“颜色值的非线性增加”有什么名字吗? 有什么我可以问谷歌的吗


非常感谢。

“颜色值的非线性增加”是您要寻找的术语吗?哇!我不知道什么更令人震惊,如果这是事实,网页看起来像是为我写的,或者如果这是事实,我没有发现自己更快。是的,我想正是这样。我一直不明白伽马到底是什么。我将尝试使用它在着色器中生成正确的公式。谢谢!我很高兴这可能有用。如果您使用GLSL作为着色语言,那么本页有更具体的示例(但我相信您可以将其转换为您正在使用的任何着色技术):我很乐意看一看,因为问题仍然没有解决。我尝试了很多东西,但都没有找到令人满意的。例如,存在缩放问题。当我使用RGB时,我正在放大[0255]的值。但对于伽马射线,还不清楚。我想我还是搞砸了。我还在努力。所以:我很高兴接受这个链接。