【提问】关于D3D文字显示的办法
本来打算如果是射击游戏就用图片做文字去显示可是后来才察觉到
如果用图片做文字了,那么我的AVG部分怎么办
于是求D3D里面绘制文字的方法,但是必须能消锯齿
别和我说神马ID3DXFont之类的
当然如果ID3DXFont能消锯齿也可以
救救我吧,触手们 4个方法吧
1.用SetRenderTarget改变渲染目标,把ID3DXFont渲染到纹理上去。
2.创建一个纹理,用GetGlyphOutline即时作位图字体,然再画出去。
3.还可用freetype里的相关函数代替winapi的GetGlyphOutline,绝大多数开源游戏引擎都是这么干的
4.作一个完备的位图字体库,像irrlicht,krkr等
具体作法用上面说的函数为关键字谷歌一下,应该不少。 第一种:渲染到纹理好像很麻烦,并且渲染到纹理能保证消锯齿么?
第二种:GetGlyphOutline好像和GDI有关,我不会
第三种:什么函数?
第四种:我曾经试着做过图形字体库,结果很卧槽。
看来只能考虑渲染到纹理了
另外我曾经试过用GDI+保存到FileInMemory里面,然后用Texture去读取,结果速度很卧槽…… 1.ID3DXFont直接渲画面能消锯齿,渲到纹理上就能消锯齿。
3.好像是FT_Load_Glyph吧,反正就是替代winapi的。
FileInMemory的,还是要用文件IO吧。程序中凡是用到文件IO就慢的不得了。 你坑我
我费了很大劲才做出了RenderTarget
结果文字根本还是那个揍性…… dxsdk的dxut里就有如何用D3DXFont作字体的最标准例子,很明显有抗锯齿什么的,而Text3D那个例子更高级一点,谁让你不看呢。
因为工作原理一样,渲到纹理的效果和直接渲到画面的效果必然是一致的,你在直接渲到画面没作好,渲到纹理当然和原来一样。 因为人家找不到吗
不要对人家这么凶吗
我错了还不行吗
页:
[1]