POPPUR爱换

标题: 【技术贴】谈分辨率和抗锯齿的那些事 [打印本页]

作者: wd19880427    时间: 2012-8-23 13:26
标题: 【技术贴】谈分辨率和抗锯齿的那些事
有那么一部分人对于抗锯齿有一种近乎偏执的崇拜,所以我做了几张喜闻乐见的图片来描述一下各种抗锯齿技术的差异

假如一块1920X1080分辨率的屏幕,原生的图形锯齿是:
[attach]1995652[/attach]

那么,2XMSAA大概就是这样:
[attach]1995651[/attach]

4XMSAA大概就是这样:
[attach]1995650[/attach]

那么8XMSAA大概就是这样:
[attach]1995649[/attach]

那么FXAA技术在哪一段呢?如果原生是4X的锯齿形状的话,FXAA大概就是这样:
[attach]1995653[/attach]


显而易见,这其实还是4X物理抗锯齿,但是通过模糊抗锯齿技术,让图像“看起来”好像是8XMSAA了,当然,实际效果是不如8MSAA的,但资源占用率将会极大地降低,直观的表现就是显存占用率低了

那么16X抗锯齿可以看成是这样:
[attach]1995648[/attach]


那么,随着抗锯齿等级的不断提升,图形的边缘将会趋于锐利,直到最高的抗锯齿效果下,图形锯齿完全消失了:
[attach]1995647[/attach]


这个时候大家发现一个问题了,那就是:我们看到的线条仍然不是笔直的!仍然有锋利边缘!

这是怎么回事呢?这就牵涉到了:分辨率与点距、ppi的关系

点距就是屏幕上两个像素点的距离,ppi就是每英寸屏幕可现实的像素点个数。

那么问题来了:以1080P分辨率为例,同样是1080P分辨率,随着显示器大小的不同,点距也是不同的,如下:

16:9液晶显示器点距

18.5″(1360×768) -0.3

20"(1600×900) -0.276

21.6″(1920×1080) - 0.248mm  

23"(1920×1080) - 0.265mm

23.6"(1920×1080) - 0.2715mm

24"(1920×1080) - 0.276mm

而27寸显示器

27"(2560X1440) - 0.2331mm
往上递增

可以看到,在1080分辨率下,从22寸到24寸,点距是依次增加的,人眼与点距的关系,在20厘米左右,人眼最低可以识别0.1毫米点距(1.0的视力,近视的话这个距离还得缩短,除非你是鹰眼了)。如果视距加大的话,比如60厘米,识别减少到0.3mm,所以显示器的点距一般为0.2~0.3mm之间。

那么,对于人眼识别的范围内,以dell 2312显示器为例,正常游戏距离下(20~40cm),人眼可以识别0.2的点距,也就是说,我们在这个距离上看1080P的图像,抗锯齿开到最高,仍然会有锯齿感,贴近屏幕看就更加了,而视网膜屏幕,以macbook为例,是在15寸屏幕大小范围下,塞入2880×1800的翻倍分辨率屏幕,ppi远超人眼可识别的300,点距小到无法看到的程度。

所谓的4K显示器,就是4096×2160分辨率(还有其他标准,接近4000),目前商用的4K显示器尚没有低于30寸的(松下一款20寸的IPS采用了3840×2160),按照27"(2560X1440) - 0.2331mm的标准,4K显示器在同等屏幕大小下,即使是眼睛贴上了显示器也感觉不到像素点的存在。



作者: cjcm    时间: 2012-8-23 13:32
技术贴,很形象直观,沙发了!
作者: 小美哦    时间: 2012-8-23 13:33
显示器挑战显卡?
作者: moonfighter    时间: 2012-8-23 13:45
技术贴要顶
作者: divx001    时间: 2012-8-23 14:14
所以还是游戏机好,离5米开外除非氪金狗眼负责啥锯齿都看不到
作者: bruto123    时间: 2012-8-23 14:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: iamw2d    时间: 2012-8-23 15:01
狗屁技术贴 发技术贴是好事 但是像楼主这种自己都不懂的还来发 老子就想骂人了
作者: wd19880427    时间: 2012-8-23 15:03
iamw2d 发表于 2012-8-23 15:01
狗屁技术贴 发技术贴是好事 但是像楼主这种自己都不懂的还来发 老子就想骂人了

哦?敬请指教

作者: iamw2d    时间: 2012-8-23 15:16
wd19880427 发表于 2012-8-23 15:03
哦?敬请指教

你自己截几张开关了aa的图去看看再来说

作者: bcyj    时间: 2012-8-23 15:26
iamw2d 发表于 2012-8-23 15:01
狗屁技术贴 发技术贴是好事 但是像楼主这种自己都不懂的还来发 老子就想骂人了

十分同意,这完全就在误导别人


作者: bcyj    时间: 2012-8-23 16:02
wd19880427 发表于 2012-8-23 15:03
哦?敬请指教

简单的说,由于像素点是栅格式排列的,就是是基于水平对齐和垂直对齐的,所以在显示一条斜线时必然无法完全正确每点对应
如果用画图拉个直线
[attach]1995869[/attach]
为了让锯齿感没那么明显,手段就是加入在两种颜色之间的像素,这就是抗锯齿
最早出现的是SSAA,其实就是在渲染图像中栅格化时,先把渲染到倍数大小的缓冲区上面,然后使用类平均像素算法再缩小成屏幕大小显示出来
如刚才那图,在那线旁边画一跟两倍长的线,再用PS缩小成50%,这就是2x扩锯齿
[attach]1995870[/attach]
然后就是MSAA,由于SSAA是对整个需要栅格化的图像进行倍数放大来渲染,占资源过多,所以就开发出MSAA.
MSAA与SSAA的区别就是渲染时,只有多边形边缘才进行放大渲染然后缩小显示,

以上两种AA都是工作于由多边形数据渲染栅格化成平面图像的过程之中的,FXAA就不一样了,FXAA属于一种后处理
就是等于先渲染出平面图形,然后截图,在平面图上利用算法查找边缘(和用PS差不多),对找到的边缘进行平均像素处理,
这个过程之中不需要并不可能得到多边形数据

作者: percyxl    时间: 2012-8-23 16:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: qqicu    时间: 2012-8-23 16:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: NORAWITHMYCALL    时间: 2012-8-23 17:55
首先,目前显示器像素并不是呈现正方形。目前所有的AA原理个人概况为叫仿色遮蔽,取相近色填充边缘。
作者: bobcat    时间: 2012-8-23 18:37
找本教科书看看不好吗? 为什么要浪费时间写这么多完全错误的东西?
作者: wd19880427    时间: 2012-8-23 18:38
iamw2d 发表于 2012-8-23 15:16
你自己截几张开关了aa的图去看看再来说

一说截图你就秀了下限了

作者: jocover    时间: 2012-8-23 18:39
垃圾文章,误导人·········
作者: bcyj    时间: 2012-8-23 19:17
wd19880427 发表于 2012-8-23 18:38
一说截图你就秀了下限了

这话你说自己合适一些,虽然他不够耐心,但是叫你去截图的这个方法完全正确



作者: 878173064    时间: 2012-8-23 19:26
iamw2d 发表于 2012-8-23 15:01
狗屁技术贴 发技术贴是好事 但是像楼主这种自己都不懂的还来发 老子就想骂人了

有话好好说 何必呢 不喜勿喷(除非LZ确实是有过之处)
作者: fewness    时间: 2012-8-23 20:36
民科                                            
作者: wd19880427    时间: 2012-8-23 20:43
bcyj 发表于 2012-8-23 19:17
这话你说自己合适一些,虽然他不够耐心,但是叫你去截图的这个方法完全正确

完全不正确,因为根本没考虑到我用的屏幕是什么分辨率的
作者: bcyj    时间: 2012-8-23 20:44
wd19880427 发表于 2012-8-23 20:43
完全不正确,因为根本没考虑到我用的屏幕是什么分辨率的

你不会连捉了图,放大一个个像素来对比都不懂吧?

作者: cool_exorcist    时间: 2012-8-23 20:46
我说怎么一看不对劲,原来完全是错了
作者: InuYasha    时间: 2012-8-23 21:23
本帖最后由 InuYasha 于 2012-8-23 21:33 编辑

老子教教你啥叫AA


[attach]1996173[/attach]noAA

[attach]1996174[/attach]2xAA

[attach]1996175[/attach]4xAA

[attach]1996176[/attach]8xAA



作者: D65    时间: 2012-8-23 22:17
画过图标你就知道了,锯齿是因为四方像素,造成的了边缘的格子化。只能在边界加阴影。这就是反锯齿。

还有二种办法,把像素点无限缩小到,像素不能被肉眼辨识。用CRT电视的圆形电子辉光点阵。




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4