游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6359|回复: 18

中文字体的问题。

[复制链接]

13

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-9-1 10:38:00 | 显示全部楼层 |阅读模式
想请教下思路 .若不是中文字体的话,只需要将字符放入显示列表中,但是是如果使用中文字体的话,显示列表岂不是要很大?如何实现中文字体呢 ?

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2006-9-2 01:07:00 | 显示全部楼层

Re:中文字体的问题。

1。直接使用GDI Object TextOut,Fill Texture, Render
2。使用Font Bmp保存常用字体(相比较1。省去了GDI Object的操作,缺点是字体类型比较单一)。
如果要做Buffer的话,中文实在不好做,因为中文字体的基本元素不像E文就26个字母。除非以Font Fragment List的形式保存,不过管理起来比较复杂,而且也不见得能提高多大效率。
一般在应用中,字体很少有动态改变的,所以使用1,2方法足够了。如果担心填充的效率问题,可以考虑使用多线程DrawText,然后再Render。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2006-9-2 02:39:00 | 显示全部楼层

Re:中文字体的问题。

FREETYPE

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-9-2 22:07:00 | 显示全部楼层

Re: 中文字体的问题。

刚做的字体渲染
freetype. 中文小字体恶心的很.
sf_2006922271.gif

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-9-3 19:08:00 | 显示全部楼层

Re:中文字体的问题。

字体要先写纹理,然后渲染纹理,纹理可以分片保存,比如一张256*256的纹理可以存储90个字,这些字的纹理坐标,可以做个中文字符的查询表来取得

然后当纹理写满的时候,直接bindtexture到显存,每次根据handle渲染就可以了

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-9-3 22:51:00 | 显示全部楼层

Re:中文字体的问题。

现在是一个字一个texture。 我今天在想。能不能把很多字组合到一个texture上去。这个也是个很好的方法。速度应该会快很多。
但是管理是个大问题。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2006-9-4 02:56:00 | 显示全部楼层

Re:中文字体的问题。

现在是一个字一个texture。 我今天在想。能不能把很多字组合到一个texture上去。这个也是个很好的方法。速度应该会快很多。
但是管理是个大问题。
-----------本来就应该是很多字一个texture吧,不要超过2048……
还要在GL里指定那个什么优先,函数名我忘记了,让他尽量在显存里。这种大而且经常用的纹理换进换出的,系统开销大

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-9-4 10:15:00 | 显示全部楼层

Re:中文字体的问题。

管理是个大问题.
中文字很多. 你不知道那些区域是用到.那些区域没用到. 非常恶心的。

13

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-9-4 15:00:00 | 显示全部楼层

Re:中文字体的问题。

周末漂流去了,没有过来回帖,谢谢各位的回复。
我先看看,对于freetype不是很明白查下资料再问问。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2006-9-4 18:15:00 | 显示全部楼层

Re: Re:中文字体的问题。

xpertsoft: Re:中文字体的问题。

管理是个大问题.
中文字很多. 你不知道那些区域是用到.那些区域没用到. 非常恶心的。

Time To Live
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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