CEGUI字体阴影描边实现及载入优化

CEGUI的字体效果(包括阴影, 描边等)其实也可以不修改代码, 只需修改或创建自定义looknfeel就可以简单快捷的实现(我使用的是0.75版本).在这里以修改WindowsLook.looknfeel中的WindowsLook/StaticText作为演示.

1.阴影效果

阴影的实现方式是将字体画两次, 第一次将字体偏移一定位置,并渲成黑色, 第二次将字体以设定的颜色渲染.

(第一个TextComonent的是画阴影, 相对于左上角偏移量为2(左图), 第二个TextComonent是画字体的(右图))

 

没有阴影(图1)和有阴影(图2, 3)的截图效果对比:

  

            (1)                                           (2)                                   (3)

 

2. 描边效果

描边的实现方式和阴影相似, 不同的是描边需要渲8次, 每次在不同的方向作相应的偏移(8个偏移方向分别是左上, 上中, 右上, 左中, 右中, 左下, 下中, 右下).

没有描边(左图)和有描边(右图)的截图效果对比:

                                                   (偏移量为1)                          (偏移量为0.5)

 

CEGUI默认的字体载入方式是一次性读取所有字体信息,并将字体渲染到imageset中,当需要渲染字体时直接将imageset中的字体图片渲染到目标位置.但是用这种方式处理中文,你会发现在载入字体以及释放字体资源时需要花相当长的时间. 所以就需要对默认的处理方式作一些修改, 我的处理方法是修改CEGUI中FreeTypeFont的rasterise函数, 将imageset的大小固定为512*512.在需要显示字体时才生成FontGlyph,并把字体添加到imageset中,这样速度会有很明显的提升.

posted @ 2011-01-31 23:28  vibilin  阅读(3289)  评论(3编辑  收藏  举报