幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5527|回复: 6

[游戏编程] 【提问】关于D3D文字显示的办法

[复制链接]

24

主题

117

帖子

1274

积分

⑥精研

积分
1274
QQ
发表于 2011-1-29 05:44:47 | 显示全部楼层 |阅读模式
本来打算如果是射击游戏就用图片做文字去显示
可是后来才察觉到
如果用图片做文字了,那么我的AVG部分怎么办  

于是求D3D里面绘制文字的方法,但是必须能消锯齿

别和我说神马ID3DXFont之类的
当然如果ID3DXFont能消锯齿也可以

救救我吧,触手们  
Tamashii是啥意思? 魂! ======================= 我真是败给C++的面向对象了啊……
回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2011-1-29 11:21:06 | 显示全部楼层
4个方法吧
1.用SetRenderTarget改变渲染目标,把ID3DXFont渲染到纹理上去。
2.创建一个纹理,用GetGlyphOutline即时作位图字体,然再画出去。
3.还可用freetype里的相关函数代替winapi的GetGlyphOutline,绝大多数开源游戏引擎都是这么干的
4.作一个完备的位图字体库,像irrlicht,krkr等
具体作法用上面说的函数为关键字谷歌一下,应该不少。
え~え~お!!!
回复 支持 反对

使用道具 举报

24

主题

117

帖子

1274

积分

⑥精研

积分
1274
QQ
 楼主| 发表于 2011-1-29 18:55:09 | 显示全部楼层
第一种:渲染到纹理好像很麻烦,并且渲染到纹理能保证消锯齿么?
第二种:GetGlyphOutline好像和GDI有关,我不会
第三种:什么函数?
第四种:我曾经试着做过图形字体库,结果很卧槽。


看来只能考虑渲染到纹理了

另外我曾经试过用GDI+保存到FileInMemory里面,然后用Texture去读取,结果速度很卧槽……
Tamashii是啥意思? 魂! ======================= 我真是败给C++的面向对象了啊……
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2011-1-30 09:34:28 | 显示全部楼层
1.ID3DXFont直接渲画面能消锯齿,渲到纹理上就能消锯齿。
3.好像是FT_Load_Glyph吧,反正就是替代winapi的。

FileInMemory的,还是要用文件IO吧。程序中凡是用到文件IO就慢的不得了。
え~え~お!!!
回复 支持 反对

使用道具 举报

24

主题

117

帖子

1274

积分

⑥精研

积分
1274
QQ
 楼主| 发表于 2011-1-31 04:03:28 | 显示全部楼层
你坑我
我费了很大劲才做出了RenderTarget
结果文字根本还是那个揍性……
Tamashii是啥意思? 魂! ======================= 我真是败给C++的面向对象了啊……
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2011-1-31 09:49:17 | 显示全部楼层
dxsdk的dxut里就有如何用D3DXFont作字体的最标准例子,很明显有抗锯齿什么的,而Text3D那个例子更高级一点,谁让你不看呢。

因为工作原理一样,渲到纹理的效果和直接渲到画面的效果必然是一致的,你在直接渲到画面没作好,渲到纹理当然和原来一样。
え~え~お!!!
回复 支持 反对

使用道具 举报

24

主题

117

帖子

1274

积分

⑥精研

积分
1274
QQ
 楼主| 发表于 2011-1-31 11:07:08 | 显示全部楼层
因为人家找不到吗
不要对人家这么凶吗
我错了还不行吗
Tamashii是啥意思? 魂! ======================= 我真是败给C++的面向对象了啊……
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-19 19:45 , Processed in 0.020339 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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