首页 > 代码库 > 三维引擎设计专题--文字的渲染
三维引擎设计专题--文字的渲染
第一部分: 基础概念:
1: 先想想文字在计算机内怎么表示, 经过前辈们的努力, 有两种表示方法, 一种是点阵字体, 即二维数组, 表示字体像素信息, 点阵字体缺点是很难进行缩放, 常见的格式有bdf,pcf,fnt,hbf. 另外一种是矢量字体, 一个文字通过数学曲线来描述, 字体渲染引擎解析这些矢量数据, 常见的格式有type1, treeType, freeType.
2: 其次,字体在计算机内存储格式已经定义好了, 想想字体存储与解析这么基础的东西, 肯定已经成为操作系统的一部分了. 对, 操作系统已经内建支持treeType, 等字体渲染引擎了. 我们平时在输入一段文字, 渲染其实都是这些字体库做的.
3: 那么, 想想三维渲染引擎里怎么支持字体渲染呢, 刚才不是说字体渲染都由字体库做了吗, 那么怎么和我们的渲染引擎结合呢, 好办, 我们可以把工作分为两步, 第一步让字体库绘制字体, 第二步, 把刚刚绘制好的字体, 当成纹理数据,给我们的渲染引擎, 这不久OK了吗.
4: 文字样式与字体, 这两个东西要分清楚, 一个文字有颜色, 大小, 背景, 分辨率(像素大小,一般是16*16, 32*32), 对齐方式, 位置, 这些属于文字样式,风格. 另外一样是字体, 比如宋体, 隶书, 等这些都有对应的字体文件, 即文字的轮廓. 在渲染引擎里要对这两种属性进行封装, 而这些属性值往往都从配置文件信息中读取.
好了, 概念和思路有了, 接下来该到具体的实现了.
第二部分: 具体实现: 未完待续....
三维引擎设计专题--文字的渲染