答narkau关于锯齿效应

科普文章,欢迎阅读:)

计算机的显示系统实际就是点阵,每个点称作像素(pixel)。所以在表现非水平竖直的直线必然会出现锯齿现象aliasing(又或者称混淆、走样)。

抗锯齿(反混淆)只能缓解这种效果,并以绘制速度为代价。方法是:
1、提高分辨率--基本属于P话...
2、使用抗锯齿算法(anti-aliasing,AA),一般是通过颜色缓慢渐变来欺骗你的眼睛。有点、直线、多边形的抗锯齿,也有全屏抗锯齿(FSAA)。

这是全屏抗锯齿的对比效果(下面为开启FSAA):

FSAA.jpg

这是我写的一个直线抗锯齿的算法模拟,可以下载看看(39KB)。
http://nonleaf.net/wp-content/uploads/AA_Line.rar

随机文章:

12 Comments

  1. blur 2006-08-9、8:20 下午

    那两条短线解决了么?

  2. 无叶 2006-08-9、9:13 下午

    to bl: 解决了,你下载看看不就知道了.

  3. narkau 2006-08-10、10:02 上午

    看了一下。。。疑问还是有的。。不过不知道在哪里。。

    你知道photoshop里用的是哪种抗锯齿方式,,,为啥我在里头画一条线(1Pix)放大到最大的时候跟你的这个看起来很不一样。。。

    而且你说的{点/直线/多边形/全屏(面?)}抗锯齿,指的是针对不同类对象的不同的抗锯齿算法(?),还是指针对不同对象的同一种抗锯齿算法呢?啊,,我希望我表达清楚了我的意思。。>_

  4. 无叶 2006-08-10、10:39 上午

    to narkau: 我在ps里面画直线放大效果差不多啊,要不你在blog里面贴图...

    确实有针对简单形状的抗锯齿算法,而且显然算法不太一样。但是原理都是平滑的渐变颜色。比如直线是通过把像素分割成子像素的方法,全屏是通过微移整个图像,然后叠加颜色实现的。全屏显然速度慢,对硬件要求高。

  5. narkau 2006-08-10、4:00 下午

    见这个图:

    http://static.flickr.com/78/211598872_5aec2e09af_o.png

    主要是画笔工具比较奇怪。他所谓的1个像素或者n个像素宽度,实际上放大以后不止一个或者n个的啊。。为什么把这个叫做1像素宽或者n像素宽呢。。。。。啊,我自己都觉得这个奇怪的问题过于钻牛角尖了>_

  6. 无叶 2006-08-10、4:52 下午

    to narkau: gg你太细致了,具体算法层次了。一般讲,如果抗锯齿宽度指的就是中心高亮区域。而且为了计算简便,斜率在-1到1之间的按照竖直宽度算,其余按照水平线宽(水平线和有宽度直线相交的长度)。

    你那个图画笔抗锯齿,铅笔没有。和我的意思差不多的啊?不过ps的效果更好一些。

    你好时髦呵,都用flickr.com了,我还没用过555。。。

  7. narkau 2006-08-11、9:32 上午

    okkk,,这个问题大约到头了。。因为我已经看不太懂你在说什么了。。>_

  8. narkau 2006-08-11、9:36 上午

    http://www.flickr.com/photos/narkau/
    俺在flick的帐号。。:-)

    我发现基于worldpress的blog,,不允许留言中出现 > 的 镜像字符。。会把 > 后的内容直接过滤掉。>_-

  9. 无叶 2006-08-11、9:41 上午

    因为他以为那是html的容器的开始符号...这算是个bug

  10. 无叶 2006-08-11、9:44 上午

    omg,你是羽毛...他是长得挺招人的...

  11. narkau 2006-08-11、10:44 下午

    哈,明明就是很大的bug..咋叫“算是个bug”。。*_^..你去提交一下吧,。。嘎嘎

    我只是觉得他比较可嘛。。不过某人说了,没有他可。。hoh...

  12. 无叶 2006-08-12、7:34 下午

    啧啧,怪不得叫那可~

Add a Comment