用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
xoyojank的公告
<p>MSN: xoyojank@live.cn</p> <p><a href="http://cid-0009c239038bcec9.groups.live.com">Nebula引擎研究群</a>:43893646</p> <embed type="application/x-shockwave-flash" src="http://www.taotao.com/res/ttlist.swf" flashvars="qq=80877101&num=20&style=1" quality="autohigh" wmode="transparent" width="180" height="400"></embed>
文章分类
Nebula Device
Nebula3 - Google Code
Nebula3 SDK Nov 2009
The Brain Dump(RSS)
The Nebula Device
常用链接
AMD Developer Central
DevMaster.net(RSS)
Gamasutra
Game Rendering(RSS)
GameDev.Net
NVIDIA Developer Zone
OpenGL ES 2.0 API
Real-Time Rendering(RSS)
WoWDev
设计模式
业界大牛
Azure(RSS)
cp的小屋(RSS)
Effulgent(RSS)
eXtreme3D(RSS)
LangFox(RSS)
Siney(RSS)
SixWater's
云风(RSS)
从越(RSS)
千里马肝(RSS)
平民程序(RSS)
友情链接
CG迷途大熊猫(RSS)
cometeor的专栏(RSS)
EddyLib
EndDuke的专栏(RSS)
xuebai5
小志(RSS)
秒大刀的城堡(RSS)
存档

原创  KlayGE中的字体 收藏

官方文档参见:http://klayge.sourceforge.net/html/font_in_klayge.html

这里只是一些测试

看了龚敏敏写的文档, 觉得这种方式很意思, 就拿来玩玩.

因为中文字体的渲染在3D程序中确实是个问题, 尤其是字体大小不固定时, 放缩会出现走样.

KlayGE的方法是一种用点阵图模拟矢量图的方案, 把计算过程放在字体生成时, 而运行时的绘制相对常规方法来说消耗很小.

KFontGen目前好像有问题, 生成过程中会由于超出32位所能寻址的最大内存而报错退出. 原先我以为2G内存不够用, 换自己的4G内存机器也不行. 难道生成时要用64位机? 看来这个生成工具需要修正一下内存的占用率.

在DEBUG模式下, 字数很多时, 帧率会急剧下降, 用PerfHUD看了一下曲线图, 是CPU瓶颈, 可能是因为KlayGE中大量使用的boost在DEBUG模式下的速度变成牛一样吧?

Release下就好多了:

字体的绘制只有一次DP:

字体绘制时使用的纹理buffer, 从这里我们可以看到distance field的一个比较直观的储存格式:

 

对比一下ID3DXFont的效率(Nebula3中debug text的绘制方式):

发表于 @ 2008年12月06日 20:47:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:BLP文件格式 | 新一篇:完整的CJK Unicode范围(5.0版)

  • 发表评论
  • 评论内容:
  •  
Copyright © xoyojank
Powered by CSDN Blog