Overlay中文显示

 

近日很多朋友咨询Overlay中文显示问题,回答的多了想索性再写个文档算了,放在网上共享,于是就有了本篇。

       Ogre1.2.5版本中,通过与Ogre官方论坛的开发者讨论实现了Overlay的中文显示,当初的实现非常的怪异,具体的实现可以参见Ogre官方论坛。

随着Ogre的更新,现在Ogre已经发布了1.4.71.4系列版本有一个重要的改进,就是加入了UTFString,这为Ogre中文显示予以很大的帮助。为了便于演示,我直接使用Ogre自带的Overlay,也就是大家熟悉的DebugOverlay,测试工程我选择Demo_ParticleFX,选择其他的也没有关系。现在编译它,运行后得到下图:


图的最左下角显示的就是英文DebugOverlay,接下来我们的任务就是把它编程中文的,^_^

Overlay中文化操作步骤如下

1.      打开OgreSDK\media\packs\ OgreCore.zip

2.      打开C:\WINDOWS\Fonts,把simhei.ttf添加到OgreCore.zip,(什么,没有simhei.ttf这个文件,那就还其他的中文ttf字体吧)。

3.      打开OgreCore.zip中的Ogre.fontdef,里面有BlueHighway这个字体定义块,在他的下面添加我们的SimHeicode_points里面的一大堆数字看不明白没关系,随后文章会解释。

SimHei

{

       type             truetype

       source         simhei.ttf

       size              16

       resolution   96

       code_points 33-166 24403-24403 21069-21069 24103-24103 36895-36895 29575-29575 24179-24179 22343-22343 26368-26368 39640-39640 20302-20302 19977-19977 35282-35282 24418-24418 25968-25968 37327-37327 25209-25209 27425-27425

}

4.      打开OgreCore.zip中的OgreDebugPanel.overlay,把BlueHighway全部替换成SimHei,我们要使用中文字体了,嘿嘿。

5.      修改完成后,确保所做的修改已经保存到OgreCore.zip

6.      进入Ogre解决方案,打开文件ExampleFrameListener.h,把54-59行的代码替换如下:

              static String currFps = "Current FPS: ";

              static String avgFps = "Average FPS: ";

              static String bestFps = "Best FPS: ";

              static String worstFps = "Worst FPS: ";

              static String tris = "Triangle Count: ";

       static String batches = "Batch Count: ";

 

              static DisplayString currFps = L"当前帧速率: ";

              static DisplayString avgFps = L"平均帧速率: ";

              static DisplayString bestFps = L"最高帧速率: ";

              static DisplayString worstFps = L"最低帧速率: ";

              static DisplayString tris = L"三角形数量: ";

              static DisplayString batches = L"批次: ";

7.      最后重新编译工程,下面是我运行的截图,是不是已经显示中文了,^_^


现在再来看看SimHei中的code_points是如何生成的,这个可以参考我上次写的这篇文章http://www.cnblogs.com/gogoplayer/archive/2008/05/09/1189795.html,至此,实现Overlay中文显示。

转载请注明出处:

作者:gogoplayer

E-mail : gogoplayer@163.com

QQ : 78939328

http://www.gogoplayer.com.cn

posted on 2008-05-09 13:43 gogoplayer 阅读(1235) 评论(6)  编辑 收藏 所属分类: Ogre

评论

#1楼  2008-05-09 19:58 曲滨*銘龘鶽      

虽然不知是啥,不过很好看!   回复  引用  查看    

#2楼  2008-05-11 03:52 情感天空 [未注册用户]

看起来不错   回复  引用    

#3楼  2008-05-12 01:13 镜涛      

.   回复  引用  查看    

#4楼  2008-05-27 23:43 Gavin991 [未注册用户]

厉害。感谢你的经验分享。   回复  引用    

#5楼  2008-09-24 19:13 zxzx [未注册用户]

那个code_points, 不是要image型的才要给出的吗?
关于那部分的代码在哪里?   回复  引用    

#6楼  2008-10-10 23:58 ogrelqz [未注册用户]

请问一下 这个做法适用於mdebugtext吗

我照著做 DebugOverlay 可以显示中文

但是
static DisplayString mDebugText = L"平均 请按abcdefgasdadasdasdasdasdasdasdasdasadasasdasdasd";

结果出来是空白的
请问mdebugtext可以显示中文吗   回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接:
 


导航

<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

与我联系

搜索

 

常用链接

留言簿(3)

我的标签

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜