繁体   English   中英

如何在DirectX 9中尽快使用D3DXSprite绘制D3DXFont?

[英]How to draw D3DXFont using D3DXSprite in DirectX 9 as fast as possible?

我有很多文字要画。 如果我用第一个参数为NULL调用D3DXFont :: DrawText,则性能会很差。

我听说将D3DXFont与D3DXSprites结合使用会使事情变得更快。

我的应用程序需要如何绘制字符串? 它使用伪阴影使每个字符串不正确。 这意味着我将每个字符串以黑色绘制4次:x + 1,y + 1 x-1,y + 1 x-1,y-1 x + 1,y-1和1次以实际颜色绘制。 它使始终可读的字符串看起来非常漂亮。 我什至切换到像素字体以加快渲染速度。

现在用阴影(ShadowString)调用该字符串。

我每画一帧都会在屏幕上绘制256个ShadowString(最坏的情况)。

我想知道如何使用子画面(或任何其他技术)来尽可能快地绘制这些字符串)。 现在我的应用程序速度为30 FPS。 但我的目标是120分钟。 而问题仅在于文本绘图。

当然,您必须在进行任何优化之前就对应用程序进行概要分析,但是D3DXFont是, D3DXFont / D3DXSprites和“ fast”是互斥的概念。 如果它们不合适,那就不要使用它们。 使用第三方库或制作自己的精灵/字体渲染器。

最近,我在这里回答了如何操作: 在DirectX 9中如何在没有D3DX9的情况下绘制线条和字体? 此外,Google用于“精灵字体”,“精灵批处理”,“纹理图集”,“ TTF渲染”。 如果您熟悉API(尤其是顶点缓冲区和纹理),这并不是很难,而且Web上有很多示例。 不要犹豫,寻找D3D11或OpenGL示例,原理是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM