0

我想以一种考虑当前变换和类似设置的方式渲染字体,尤其是投影变换和视口。

我在想最好的方法是有一个屏幕外的表面来渲染文本,然后在我真正想要文本的地方渲染那个表面。

但是,我不确定该解决方案的许多方面。

  • 这是最好的方法吗?

  • 是否有更好的免费字体渲染器围绕该 id 花费我的时间来允许这样的事情。我看到很多人出于各种原因抱怨 d3dx 字体界面,但从来没有链接到更好的支持 unicode 的渲染器...?

  • 使用某些表面格式和/或表面尺寸有什么好处(例如,总是使用尽可能小的而不是一些标准的大尺寸,这需要额外的步骤来尝试确定尺寸......)

4

1 回答 1

1

是的,渲染到纹理,然后绘制一个带纹理的四边形来定位和定位文本将是实现此功能的最简单方法。

至于 D3DX 文本渲染器,这实际上取决于您使用的是哪个 SDK。DirectWrite(仅适用于 Windows 7 和 Vista)将为需要以可与 Direct3D 互操作的方式呈现高质量文本的应用程序提供更高质量的文本呈现方法。

您当然可以进行自己的光栅化。有一些字体光栅化引擎是开源的,可以重新用于这种需求,但我们在这里谈论大量编码的好处可能无法区分到足以保证开发费用的程度。

话虽如此,但您可以使用 Direct3D 和着色器为您提供一个全新的替代方案,前提是您可以访问作为曲线数据的字形轮廓。这个想法是使用着色器来光栅化文本并将曲线定义存储在顶点流和关联的纹理中。尝试查看描述该技术的这篇论文。

于 2009-07-17T01:34:47.403 回答