什么原因导致混叠?


47

我经常听到有关锯齿和抗锯齿的信息,我知道它的外观,但我不知道是什么原因造成的。这是物理现象吗?还是数字?

如果可以帮助解释,我将具有一些编程知识,但不具备视频游戏或图形知识。

Answers:


60

是物理现象吗?还是数值?

这个问题对我来说意味着您实际上不知道别名/抗锯齿的意思。我的意思是,您说您“知道它的外观”,但是如果您实际上知道这些术语的含义,您可能会意识到自己的问题是荒谬的。混叠是计算机图形渲染方式的一个副作用,按照定义,计算机图形在很大程度上不是物理现象。

“混叠”只是指在倾斜线上的阶梯外观,因为计算机图形实际上是由网格中的许多小正方形组成的。这是一张图片,用来说明我在说什么: 在此处输入图片说明

无论您是徒手绘制还是编写算法来计算3D多边形的像素,无论何时渲染图像中的像素,这都是一个问题。这只是图像是像素的正方形网格的事实的副作用。“抗锯齿”是通过沿边缘像素将颜色混合在一起来掩饰阶梯外观的情况。


18
@Kruncho永远不要为错而后悔,除非您正在教别人犯错误!仅当您不理解或不愿改正时,才对不起。您的错误实际上有助于弄清您到底想知道什么:(“别名”在计算机图形学中是如何发生的?)。顺便说一句,虽然这个答案最能说明什么,如何以及为什么,但这是一个数字问题。您可以将其视为尝试仅使用整数来表示分数的局限性。没有半个像素,等等。因此您最终会看到块状图像。
模糊逻辑

5
@jhocking脚的校正:像素的垂直度实际上不相关。如果每个像素都是大小相同的圆点,则混叠将发生在相同的位置。
模糊逻辑

10
@jhocking“方形网格”也不会削减。如果像素以六边形网格排列,您仍然会出现锯齿(看起来有些不同)。重要的是像素以规则的图案排列并且尺寸不为零,并且对于任何可能的显示技术,这两个条件均成立。
Mike Scott

3
当这只是“网格”的描述词时,您就迷上了“正方形”一词。
2015年

11
@MikeScott:即使像素排列不规则,也会出现锯齿。:)))出现混叠的重要条件是原始信号(原始图像)的最大频率高于2 *(1 / T)(其中T是样本之间的间隔=像素之间的距离) )。---当原始图像具有锐利边缘(如白色背景上的黑线)时,其最大频率是无限的。
pabouk

121

尽管它回答了计算机图形学中最常见的用法,但它并不是严格正确的答案。混叠是信号处理中的一个基本概念,其数学理论早于计算机显示器。“这是像素为正方形这一事实的副作用”也不是真的。每当您以低于该信号的奈奎斯特速率的速率对信号进行离散采样并影响数字音频,图像和许多其他类型的离散采样信号时,混叠就存在。计算机图形中的混叠是离散采样的副作用,而不是像素形状的副作用。

计算机图形学中的抗锯齿是一个深层而复杂的主题,它不仅仅是边缘抗锯齿。同样,信号处理有很多基础理论,这是计算机图形学研究的一个活跃领域,即如何有效地抗锯齿,不仅用于边缘,还用于时间混叠,在像素着色器中重建BRDF时的混叠,用于阴影边缘和许多其他领域。3D图形中纹理的Mip映射是一种行之有效的抗锯齿技术,它可以解决除边缘抗锯齿之外的其他重要问题。

这确实是一种数学现象,而不是物理现象,但是它在计算机图形学之外的许多领域中都得到了体现。我也不会真正将其描述为数字现象-这是离散采样的结果,而不是计算机上数字值的离散表示的结果,尽管这也会引起混叠效果。理解信号处理的基础是了解混叠在计算机图形学中的表现方式以及理解如何减少混叠的良好基础。


6
一方面,嘿,我今天学到了一些新东西,从未听说过图形边缘以外的任何情况下的锯齿。也就是说,这一额外的技术细节似乎与“这是像素为正方形这一事实的副作用”的解释并不矛盾。“离散采样”只是说“边缘实际上是一束离散像素,而不是连续线”的一种奇特的方式。
2015年

15
+1表示技术上的正确性。尽管给出的问题级别太技术性了,但实际上并没有解决隐含的问题。接受的答案更适合问题的意图。我虽然学到了一些新东西,所以感谢您的详尽阐述:)
Fuzzy Logic

6
@jhocking抱歉,我们的图形程序员倾向于在别名上做一些工作:)我认为您的回答解决了这个问题,但是如果有人想更深入地研究计算机图形学,我认为了解别名是一种数学现象是有帮助的。一堆理论。所有这些技术细节对于在游戏中制作
精美

4
@jhocking的要点是像素的形状无关紧要-因此,像素不是正方形的事实不是副作用,而是像素不会改变其颜色的事实是副作用。程度。无论如何,像素不是一个小正方形
丹尼尔·瓦格纳

1
您的答案缺少图片,否则肯定会被接受。除了边缘抗锯齿示例外,它还需要:1)车轮顺时针旋转并突然停止并改变方向的动画gif。2)3D国际象棋棋盘(您知道一个无穷大棋盘)...我还研究了信号处理。
MartinTeeVarga,2015年

68

除了其他两个答案之外,这是发生情况的更直观的说明。

在2D多边形中混叠

网格正方形代表像素。左侧的红色多边形是绘制的形状,内部以点序列表示。渲染时,它将从点列表转换为像素颜色的缓冲区。离散采样基于每个像素覆盖了多少多边形来确定哪些像素是暗的,哪些像素是亮的。

要回答您的问题,这是一种数字/数学现象,因为有关原始形状的信息由于近似而丢失。

抗锯齿

抗锯齿是指渲染尝试通过降低部分覆盖的像素的强度来校正锯齿。


5
这是真正说明正在发生什么的第一个答案。做得好。
Beska

1
据我所知,“使部分覆盖的像素的强度降低”并不是完全正确的。我相信大多数抗锯齿算法都会应用低通滤镜(与模糊滤镜相同),有时会在整个渲染帧中使用(如FXAA),或者更智能的算法仅在边缘边界上执行。MSAA采取了不同的方式,但是总体效果仍然是在硬边边界上的LPF。
路加福音

1
@Luke我不想让最后一段解释事情的运作方式;它只是在描述抗锯齿的结果。“强烈”不是正确使用的术语,但是在颜色比背景更强烈的形状上进行抗锯齿时适用。我就是这么说
aebabis 2015年

3

在信号处理领域,混叠是指信号频率的错误识别。例如,由于在欠采样步骤中缺乏足够的考虑,可能会导致生成错误和失真。可以将其概括为2D离散信号,例如图像。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.