游戏开发论坛

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

OPENGL中高质量TRUETYPE字体显示方法

[复制链接]

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2005-3-18 19:09:00 | 显示全部楼层 |阅读模式
这是我参考各种显示方法后写的,可自由设定字体和字的高度.速度比较快,字体漂亮.
实现方法是动态在内存创建字库,对没有显示过的字先画到临时HDC上,再复制到纹理上,画完一张纹理就再新建一张.纹理使用的是GL_ALPHA格式的,意思就是只有ALPHA值,所以一个像素只占一个字节,节省不少内存,整个字库全部装载到纹理中只需2MB.文字的颜色取决于当前的OPENGL绘图颜色(用glColor函数设置).
附件中所带的程序是我从自己的开发库中拿出来的,去除了一些不相关的内容,使大家看起来比较清晰一些,没有编译过,所以可能会存在一些问题,例如:
1.我的视区座标是左上角(0,0)右下角(800,-600)的座标系.
2.程序没包含OPENGL的头文件.

sf_200531819956.rar

6.21 KB, 下载次数:

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2005-3-18 19:37:00 | 显示全部楼层

Re: OPENGL中高质量TRUETYPE字体显示方法

贴张效果图给大家看下效果吧.
同时补充一下,有些字体需要将字符集设成GB2312_CHARSET才能显示正常.(lf.lfCharSet =GB2312_CHARSET)
sf_2005318193718.jpg

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2005-3-18 20:01:00 | 显示全部楼层

Re: OPENGL中高质量TRUETYPE字体显示方法

将字符集设为GB2312_CHARSET后的效果
sf_200531820149.jpg

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-3-18 20:17:00 | 显示全部楼层

Re:OPENGL中高质量TRUETYPE字体显示方法

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2005-3-19 15:34:00 | 显示全部楼层

Re: OPENGL中高质量TRUETYPE字体显示方法

上午试了下将临时HDC的类型改为256色索引然后可以直接批量复制,发现字体没有进行平滑,速度也没提高多少,所以放弃了.

38

主题

1581

帖子

1614

积分

金牌会员

Rank: 6Rank: 6

积分
1614
QQ
发表于 2005-3-20 14:01:00 | 显示全部楼层

Re:OPENGL中高质量TRUETYPE字体显示方法

请教一下,可以实现游戏里  行书、或人民币上的那种魏碑体吗?甚至草书。。。

不知道可否实现?

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2005-3-20 21:32:00 | 显示全部楼层

Re: OPENGL中高质量TRUETYPE字体显示方法

任何字体都可以使用,包括BIG5等,只需设置相对应的字符集就行了.

11

主题

97

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
QQ
发表于 2005-3-21 11:30:00 | 显示全部楼层

Re:OPENGL中高质量TRUETYPE字体显示方法

很不错啊,我一直在找这个,希望能用的上!

1

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
QQ
发表于 2005-3-24 00:54:00 | 显示全部楼层

Re:OPENGL中高质量TRUETYPE字体显示方法

多些楼主,受益菲浅,已经学会了~~:)

3

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2005-7-25 16:52:00 | 显示全部楼层

Re:OPENGL中高质量TRUETYPE字体显示方法

楼主,能给一个实例吗?在这里先谢谢了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-16 13:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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