字体 60分万岁日

image image 其实比左边那个小一半

完成了一个扫描线填充算法。

发现这个算法主要有两个缺陷。

一是像素精度的,所以当边线太小时无能为力。还和字体有关。连边线一起填充也许是个办法。

二是一次只能填充一个多边形

具体点说就是一条曲线。

三是出现曲线内的曲线时,Fill方法是无能的,出现无法判别哪里不该fill的情况。处理不了镂空

当然分析曲线,是可以确定的,计算太多,这并不是c#擅长的工作。

对于三也可以分曲线逐个处理,遇到前面曲线处理过的颜色就反色。

当然也有好的地方

image 利用gpu的双线性过滤来做反锯齿。效果不错的样子。

但为了通用,还是要完成使用CPU的算法。这个大约是32点阵,实际上由于windows phone 7的屏幕非常精细 800*480 在3英寸左右,中文字体在windows phone 7 上合适的阅读尺寸也要24个点以上。这奠定了用TTF动态生成字模的优势,我们想大就大,想小就小。

image 你可以自己感受一下,windows phone 7 标准尺寸下,<24点阵的字体几乎没有什么可阅读性可言。请记住这是一个触摸屏系统,还是多点,你自己的手还在不停的干扰阅读,字,还是大一点儿的好。

对于使用480*320分辨率的情况,在屏幕显示已经不能对齐到像素的情况,边缘抗锯齿已经无意义。而且这种分辨率追求的是图形性能。此时应该使用点阵字库,我们接下来在会支持点阵字库。

接下去需要重构一下字模缓冲,能够建立单个曲线填充的缓冲,然后改进一下填充算法,使之能够处理边黏住的情况。

再稍微完善,中文显示问题便可以告一段落。

真是辛苦的一段时间。2010/5/13  凌晨一点

XNA4中文显示功能完成60%。

争取在下个周末达到80%的完成度,基本上可以应用的程度。

posted @ 2010-11-03 21:07  疯光无线  阅读(316)  评论(0编辑  收藏  举报