游戏开发论坛

 找回密码
 立即注册
搜索
楼主: golinjin

如何高效的在游戏中显示各种字体的汉字

[复制链接]

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-19 00:26:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字


一般网络游戏都是支持所有中文字的,难道只能Lock再TextOut了?
操作显存可是很慢的啊!
是不是每次有新文字,都须把它们画成图,保存在一个缓冲区里,然后不断地贴进屏幕,直到不再显示才删除。可总觉得这不是什么好方法。

2

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2004-1-19 02:02:00 | 显示全部楼层

Re: 如何高效的在游戏中显示各种字体的汉字

用D3DXFONT可以显示中文
效率应该比TextOut高吧

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-19 03:45:00 | 显示全部楼层

Re: Re: 如何高效的在游戏中显示各种字体的汉字

用D3DXFONT可以显示中文


真的吗?? 我把例子中的英文字符改为中文字符后,不显示了哦。。。

小弟刚接触D3D,也许是不懂吧,希望高手能指教一下,怎么用D3DXFONT显示中文? [em24]

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-1-19 08:20:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

向导生成的D3DXFONT好像不显示中文。可能要自己改了。

0

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-1-19 10:47:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

D3DFONT是不可以显示中文的,看看我在上面的解释。而DX9自带的方式又太慢。所以只好自己解决。

0

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-1-19 10:55:00 | 显示全部楼层

Re: 如何高效的在游戏中显示各种字体的汉字

这是我试着编的,把CD3DFont改进了一下,用法与Text3d例子一样,把头文件和源文件加入text3d工程中,在text3d.cpp开头加入d3dfontw.h,其初使化等使用方法与cd3dfont一样,只要把DrawText改为Draw2DText函数即可。不过还没解决缓冲满的问题,所以不能显示太多的中文,有待完善。

sf_2004119105532.rar

9.32 KB, 下载次数:

0

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-1-19 14:55:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

自已读出字体文件里的信息如Bezier曲线控制点等,再通过D3D或OPENGL等利用显卡的硬件功能实时渲染。
中文的字体文件都比较大,随便一个都要7、8MB。可以用OS提供的Temporary File服务缓冲较大的字体文件。
这样速度又快又不太占内存,而且因为渲染过程由自已控制因此方便加入各种特效。
难点就是 TrueType、OpenType 等字体文件结构比较复杂,而且许多字型需要通过一台解码虚拟机进行调整才能达到比较好的字体外观。

2

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2004-1-20 02:17:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

看DirectX Sample "Text3D"
\DX90SDK\SAMPLES\C++\DIRECT3D\TEXT3D
里面分别用
D3DXCreateFont
D3DXCreateText
D3DXCreateSprite
这些方法创建了
ID3DXFONT
ID3DXMESH
ID3DXSprite
这些接口
只有ID3DXMESH不能显示中文

0

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-1-20 12:07:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

id3dxfont虽然支持中文,不过你要是在3d游戏中用这些函数,那么你最好有一台3gHZ CPU+5900显卡的电脑。

2

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2004-1-28 02:19:00 | 显示全部楼层

Re:如何高效的在游戏中显示各种字体的汉字

试了一下,大量文本时(英文10000+字)
CD3DFONT怎么比ID3DXFONT慢这么多?
参考
CD3DFONT 150 -> 23 fps
ID3DXFONT 150 -> 57 fps
为什么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-2 15:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表