CEGUI字体阴影描边实现及载入优化
2011-01-31 23:28
363 查看
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中,这样速度会有很明显的提升.
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中,这样速度会有很明显的提升.
相关文章推荐
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果(转载)
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果(转载)
- (转)使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
- 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果
- 3D、描边字体特效的简单实现方法
- cocos2d实现CCLabelTTF真正字体描边效果
- cocos2d-x 全面总结--字体描边和制作阴影
- C# GDI+ 文字 阴影,描边 的实现
- compass实现搜索、订单载入功能、velocity模版静态化、OSCache优化性能、SSI实现
- 兼容各个浏览器的字体阴影的实现
- cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法
- cocos2d实现CCLabelTTF真正字体描边效果
- CEGUI 0.7x实现下划线描边图文混排等效果
- photoshop实现字体白色边效果(描边)
- 纯css实现带三角箭头带描边带阴影带圆角的兼容各浏览器de气泡层
- compass实现搜索、订单载入功能、velocity模版静态化、OSCache优化性能、SSI实现
- cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法
- 关于 NSMutableAttributedString 的详解 比如 字体描边 字体阴影