FSAA 简介

FSAA(Full Scene Anti-Aliasing)是一种全景反锯齿技术,用于改善电脑图形中的锯齿现象。本文从取样和反锯齿的基本概念出发,详细解释了FSAA的工作原理和实现方法,包括ordered grid super-sampling (OGSS)和rotate grid super-sampling (RGSS),并探讨了其在3D绘图硬件中的应用。通过对图形的多次采样和平均处理,FSAA能够提供平滑的图像边缘,提升画面质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FSAA 是 full scene anti-alias 的缩写,有些人将其译为全景反锯齿,还算是合理。不过,倒底 FSAA 是什么呢?为什么要「全景」(full scene)?「半景」不行吗?(其实相对于 FSAA 的是 edge AA,「边缘反锯齿」)反锯齿(anti-alias)又是怎么回事呢?

文档内容:

[Part 1]

要弄清楚什么是 FSAA,就得先从 AA(anti-alias)开始。要弄清楚 AA,只好说明一下取样(sampling)这个麻烦的东西了。对于电脑绘图有些瞭解的读者,应该已经知道,目前的电脑绘图使用的是 2D raster 的显示方式。也就是说,画面是由一大堆有不同颜色和不同亮度的小点,组成一个大的方阵。这些小点称为像点,即 pixel,pixel 是 picture element 的缩写。很明显的,像点的数目愈多,图形就会愈细緻。我们常说的解析度就是指这些像点的数目。例如,640×480 这个解析度,就表示画面是由 307,200 个像点所组成的。

 
注:解析度在某些领域有不同的意义。在印刷的情形下,一般所谓的解析度,通常是以 DPI(dots per inch)为单位,即每英吋中含多少个点。像是某个印表机,若有 600 DPI 的解析度,就表示它每英吋可以包含 600 个点。所以,在一张 8.5"×11" 的纸上,就会有 5,100×6,600 = 33,660,000 个点。当然,纸愈大的话,点的数目就可以愈多,这是因为点的大小是固定的。在显示幕的情形下,不管萤幕有多大,使用 640×480 这个解析度时,像点的数目都是 307,200 个,这和印刷的情形是不同的。当然,通常愈大的萤幕能容许愈高的像点数目。


当然,像点的数目是有限多的。不幸的是,这个世界并不是由有限的小点组成的。好吧!也许它是由有限的小点组成,但是这些小点的数目非常的多,所以以人类巨大的眼睛来看,就好像是完全连续的一样。这样一来,用有限的像点来表现画面,就会出现问题。但是,只要像点的数目够多,而且像点的大小够小,小到人类的眼睛无法分辨的情形下,不就没问题了吗?当然会有问题,不然就不需要 FSAA 了。


问题在哪裡呢?问题在于取样的方式。取样是指把一个连续的讯号,转换成不连续(离散)的讯号的动作。因为像点的数目是有限多的,所以它一定是不连续的,所以当然就需要这个取样的动作了。下图是一个取样的例子:
 

Sampling figure

上图中,黑色的曲线是原始讯号,灰色是直线是取样点,下图则是取样的结果。简单的说,就是把曲线上面每个取样点(就是那些灰色直线所在的地方)的数值取出来,这样就是取样的动作。一般来说,取样点之间的距离是固定的。以电脑图形的例子来看,每个像点就是取样点。不过,电脑图形是从一个二维的讯号中,取样得到一个二维的阵列。所以,取样看起来是会损失资讯的。另外,因为电脑是以数位的方式存放资料,所以还要把取样的结果进行数位化。数位化可以看成是「转成整数」的动作。例如,假设讯号的范围是 0 ~ 1 之间,想要数位化成 8 位元的资料,就是先把它乘上 255(8 位元数字可以表示 0 ~ 255 的范围),然后把结果以四捨五入或是直接捨去的方式转成整数。这个动作当然也会损失资讯。不过,这部分和我们的主题无关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值