|
很多游戏中的文字都描过边,而且描得很好看!
比如<远征>,谁知道他们咋个弄出来那么棒的效果的哦?
我的文字模块基于freetype2,普通显示、斜体、加粗、下划线、边框都有很好的效果,
就是描边效果不好,边确实可以描出来,但是边缘感觉毛茸茸的,而且小字体它会成块状!?
搞了四天了未解决,气死我了!!
说下我的做法吧,希望有人指点指点我
基本上描边我就是按这个步骤完成的:
1.使用FT_Stroker_New创建一个笔触
2.FT_Stroker_Set设置笔触为描边
3.把Load后的glyph通过FT_Glyph_Copy拷贝一份出来
4.对这个拷贝出来的glyph使用FT_Glyph_StrokeBorder设置成描边渲染
5.使用FT_Outline_Render渲染这个描边的glyph,设置FT_Raster_Params参数成:
FT_Raster_Params params;
memset(&params, 0, sizeof(params));
params.flags = FT_RASTER_FLAG_AA | FT_RASTER_FLAG_DIRECT;
params.gray_spans = RasterCallback;
6.在回调函数RasterCallback中实现像素化到位图中
7.对原来的glyph执行5操作,在回调函数RasterCallback中实现像素化到位图中,
像素化过程使用alphablend的方式绘制上去
8.把位图渲染到屏幕上或保存到文件中
|
|