游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5868|回复: 13

DNF到底是用什么绘制的文字啊?

[复制链接]

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2011-4-11 22:59:00 | 显示全部楼层 |阅读模式


好吧。。
上面这个字符串,我用 gdi,directx,photoshop 都绘制过,都是一个结果
下面这个字符串,是一个游戏中绘制的,专门显示人物的姓名,已知这个游戏用的是 DirectX

正如我图上所说的,字体,大小,字符集,都相同,每个字符,“单独比较,完全相同”,整个字符串的宽度,高度,也相同。
可为什么会匹配不上呢??

大家看看,上面这个字符串中的“a”明显的,左边空出一截来。但是,下面这个游戏中的字符串,当中的“a”却没有这个空。

我就纳闷了,都是一个字体,一个字符集,其他字母都一样,怎么会唯独这个“a”(或许还有其他字母)会有差别的。更何况,字符串的整体长度是一样的。。。。。

请大家帮帮忙,没把握的,随便猜猜也行,我都会去尝试的。分数不是问题。。。。

顺便说一下,当字符全部为汉字的时候,可以100%匹配,唯独英文字母和符号不行,都是间距问题,而且不是所有字符的间距,是个别字符的间距

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2011-4-12 00:01:00 | 显示全部楼层

Re:DNF 到底是用什么绘制的文字啊????

做bitmap font的时候挑战了英文字符间距嘛,没什么高深的

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2011-4-12 08:29:00 | 显示全部楼层

Re:DNF 到底是用什么绘制的文字啊????

不是说,宋体是等宽的么???为什么会出现这种现象??

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2011-4-12 09:57:00 | 显示全部楼层

Re:DNF 到底是用什么绘制的文字啊????

dx是不能直接用windows字体的,都要把字体渲染到纹理上,才能用
由于英文字符有限,一般都预渲染到一张纹理上,这一步你想怎么调整间距就怎么调整

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-12 10:00:00 | 显示全部楼层

Re:DNF 到底是用什么绘制的文字啊????

字符图片宽度和排版用宽度是不一样的,一个有处理一个没处理而己。

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2011-4-12 21:12:00 | 显示全部楼层

Re:DNF 到底是用什么绘制的文字啊????

我发现 DNF 使用了 CEGUI,CEGUI里面使用什么绘制字体的啊?貌似是 FreeType ??

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-13 10:28:00 | 显示全部楼层

Re:DNF到底是用什么绘制的文字啊?

下面的文字有处理排版信息,而上面的字是按对齐的6个象素一个字显示的。
这种字体还不明显,你找一个差别大的非等宽英文字体一比较,效果就出来了。


21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2011-4-13 14:02:00 | 显示全部楼层

Re: Re:DNF到底是用什么绘制的文字啊?

下面的文字有处理排版信息,而上面的字是按对齐的6个象素一个字显示的。
这种字体还不明显,你找一个差别大...


怎么处理排版信息呢??能否指条路啊??

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2011-4-13 19:47:00 | 显示全部楼层

Re:DNF到底是用什么绘制的文字啊?

英文字母就那么几个,直接hard code写死都可以

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-14 11:31:00 | 显示全部楼层

Re:DNF到底是用什么绘制的文字啊?

不管是Freetype还是os api都会返回排版用宽高的吧!不然怎么处理非等宽字符和需要缩进字符。

缩进字符:看我截图第三行"System"的S和y,y的第一列象素点和S的最后一列象素点是在同一列的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 10:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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