有没有人有关于在不使用 GDI 的 native directx 9 中创建和渲染字体的任何教程/信息? (例如不使用 ID3DXFont)。
我读到这不是最佳解决方案(由于访问 GDI),但在 dx 中呈现字体的“正确”方法是什么?
最佳答案
ID3DXFont 是易于使用、早期调试输出的好东西。但是,它确实使用 GDI 进行字体光栅化(不是硬件加速)并且性能受到显着影响(尝试一下,它实际上非常明显)。不过,从 DirectX 11 开始,字体将使用 Direct2D 呈现并进行硬件加速。
呈现文本的最快方法是使用所谓的“位图字体”。我会解释如何做到这一点,除了有很多不同的方法来实现这种技术,每种方法的复杂性和能力都不同。它可以像加载预先创建的纹理并从中绘制字母的系统一样简单,也可以像系统一样简单地向 Windows 静默注册字体并在加载时在内存中创建纹理(我与 friend 开发的引擎这样做,它非常光滑)。无论哪种方式,您都应该看到位图字体带来了非常显着的性能提升。
关于c++ - 不使用 GDI 的 DirectX 字体教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491487/