因为中文字体的渲染在3D程序中确实是个问题, 尤其是字体大小不固定时, 放缩会出现走样....KlayGE的方法是一种用点阵图模拟矢量图的方案, 把计算过程放在字体生成时, 而运行时的绘制相对常规方法来说消耗很小....在DEBUG模式下, 字数很多时, 帧率会急剧下降, 用PerfHUD看了一下曲线图, 是CPU瓶颈, 可能是因为KlayGE中大量使用的boost在DEBUG模式下的速度变成牛一样吧?
?...字体的绘制只有一次DP:
?
字体绘制时使用的纹理buffer, 从这里我们可以看到distance field的一个比较直观的储存格式:
?...对比一下ID3DXFont的效率(Nebula3中debug text的绘制方式):
?
?