Archive

Posts Tagged ‘抗锯齿’

计算机图形算法中的光滑边缘算法经历了那些变迁?

April 26th, 2015 No comments

主要有四种方法:

1. wupixel:wu xiaolin提出的最早的绘制直线和圆的平滑方法,优点是简单快速,缺点是只有一个方向的像素偏移被考虑了,效果普通,而且只能绘制1个像素宽度的直线,超过一个像素后,两个端点就会非常不自然。

image

2. supersampling:解析度扩大数倍绘制,四个或者多个像素合并平滑成一个像素,优点是效果好,缺点是计算量大,多用于显卡加速,cpu基本没发做,显卡负担也大:

image
当然小范围的ss可以用来改进界面字体效果,如windows字体长宽扩大两倍绘制后再平滑down sample成小尺寸,四个像素点均匀合并成一个像素点,会好看很多。

image

3. 覆盖面积计算:通过计算多边形覆盖了矩形点阵面积的百分比来计算 Alpha,多用于软件渲染,字体绘制,如高质量图形库如AGG,采用直接子像素的绘制方式来避免supersampling的性能浪费,并达到更好效果。缺点是过于复杂不如supersampling 那样简单直接,不容易的用gpu实现。

image

比如我五年前做的一个玩具图形库:skywind3000/pixellib · GitHub
就是用覆盖面积计算方式来平滑边缘。

4. clear type:采用子像素并考虑lcd的rgb分布,利用lcd上rgb的排列规则模拟更高的解析度,缺点是过分依赖lcd排列,以及主要是x方向的抗锯齿:

image

编辑于 2015-04-26

Categories: 图形编程 Tags: ,

[自制开源] 轻量级图形库 PixelLib

January 10th, 2010 5 comments

图像:64种不同的像素格式,色彩空间变换,多种图形图像变换。
质量:支持3种级别抗锯齿效果,高质量几何图形绘制。
实现:轻量级纯软件实现,100% C代码(仅700KB代码)。
优化:SSE2/MMX优化

地址:https://github.com/skywind3000/pixellib

1. 图像变换:

支持仿射变换和透视变换,提供大量图像变换操作接口。

Read more…