|
恩,刚刚看到了,分享一下
这是跟算法有关的东西
比如一条斜线,从A点穿到B点,这种东西,怎么在屏幕上显示呢?
自然就是看这条线经过了哪个格子,然后就把它涂黑,这是最简单的算法,也是简单但其实不太准确的描述
但是,有个问题
大家都知道的,比如说45度的斜线
从 (0.0)到(5.5)
他们经过的格子就只有00 11 22 33 44 55了
这样的话,这条线就太难看了,你会看到6个(或者5个?)黑围棋一样的东西
那怎么解决呢?抗锯齿
首先,赋予线一个新属性宽度
这样的话,线经过这个格子的多少决定了他的颜色深浅,而不是傻傻的纯黑
这样的话,从视觉效果上,就好很多
这是最初的AA算法
后面,就是围绕着怎么优化和节约资源了
简单来说,点对点是显示器的事情,而线条虽然点对点,但是用黑白双色简单粗暴的rasterise(光栅化?)线框轮廓会有锯齿感
而AA其实是为了补充原本并不完美而追求速度的算法的方式(第一种算法很快,而且不需要浮点运算,不需要乘法除法只要一个左移就能完成)
这个可能不完全对,而且应该是已经过时了,但是应该大体没错.不知道现在的进化是怎样的呢.
似乎是在采样区域上做文章? |
|