Graphics 覆盖率抗锯齿合成?

Graphics 覆盖率抗锯齿合成?,graphics,antialiasing,Graphics,Antialiasing,有谁知道一个图形系统可以很好地处理多条抗锯齿线的合成 我展示了一个依赖关系图,从一个点发出一系列曲线。这些是以通常的方式绘制的抗锯齿,即混合部分覆盖的像素。因此,如果两条线占据相同的半个像素,抗锯齿会将其混合为75%填充,而不是50%填充。如果有足够多的线彼此重叠绘制,像素混合将夹紧,并最终生成锯齿线 我知道反粒度几何有计算混合的算法,这些算法适合于相邻的线条,过采样可能会起作用,但还有其他方法吗?听起来你想要一个预制的图形库,我不知道 然而,为了回答你知道任何可行的方法的问题,你可以考虑一个像

有谁知道一个图形系统可以很好地处理多条抗锯齿线的合成

我展示了一个依赖关系图,从一个点发出一系列曲线。这些是以通常的方式绘制的抗锯齿,即混合部分覆盖的像素。因此,如果两条线占据相同的半个像素,抗锯齿会将其混合为75%填充,而不是50%填充。如果有足够多的线彼此重叠绘制,像素混合将夹紧,并最终生成锯齿线


我知道反粒度几何有计算混合的算法,这些算法适合于相邻的线条,过采样可能会起作用,但还有其他方法吗?

听起来你想要一个预制的图形库,我不知道


然而,为了回答你知道任何可行的方法的问题,你可以考虑一个像素为正方形。然后,可以将绘制的任何形状近似为与像素框相交的多边形。通过将这些多边形与像素的长方体相互剪裁,可以很好地估计与像素相交的每种颜色相关的区域,以实现精确的抗锯齿。当然,这是非常缓慢的计算,不适合交互式绘图。

< P>处理这种形式的线形组合将会很慢(您必须考虑使用延迟渲染方法对每一个像素产生影响的所有线)。我怀疑有很多(如果有的话)图书馆会为你做这件事


最快、最简单的方法(可能是针对您的案例的唯一现实且经济有效的解决方案)将适用于几乎任何图形库,它将以更高的分辨率对其进行超级采样-绘制到屏幕外位图(例如,4倍宽和更高,线条宽度为4像素。绘制时禁用抗锯齿,因为这只会降低速度),然后使用双线性过滤将结果缩小。主要的缺点是,它会为屏幕外位图使用大量内存。

如果您需要一个现有系统,该系统可以使抗锯齿线条“视觉上正确”,您可以尝试使用几种现有的与RenderMan兼容的3D渲染器中的一种。许多渲染器使用的REYES算法的工作原理是将基本体分解为微多边形,然后在每个像素内的多个随机点位置对其进行采样。因此,即使有一百万条线共同遮挡了50%的像素,结果仍然是g图像值将显示大约50%的覆盖率(例如,这是许多动画电影中数百万条抗锯齿头发是如何在角色上绘制的)


当然,使用成熟的3D渲染器绘制2D线条就像用大锤敲打钉子一样。要使3D渲染器比使用传统2D渲染器简单地进行超级采样更高效,您需要一个相当病态的场景。

我认为这是唯一一种不必花费大量时间的实用方法。