【发布时间】:2013-08-16 12:53:13
【问题描述】:
我需要将文本(字符串+字体)转换为网格(顶点、索引、三角形等),但我不需要绘制任何东西。我将从一个 API 中获取一个字符串并将其作为顶点和索引推送到另一个 API。这样做的最简单/最简单/最好的方法是什么?字体指标和文本放置当然是可用的,不需要其他转换。
我目前正在使用 VC++。但是,任何类型的开源(C/C++、C#、VB,...)和“非开放但免费”的 COM/.NET 库都会很棒。
我听说过 FreeType。它会回应我的祈祷还是有更好的东西?
编辑:正如 Nico Schertler 评论的那样,DirectX -libs 中似乎有 Mesh.TextFromFont -function 可能起到了作用。谢谢你尼科!当我有时间在实践中测试时,我会更新。
【问题讨论】:
-
呃,无法回答。至少,您需要提供一些有关您解析的文本格式的文档。
-
我几乎可以进行任何从 C++ 的基本类型 char* 到 Java 的 StringBuffer 的转换。那不是问题。我需要一个“网格”,它可以使用某些定义的字体从字符/字符串中生成网格。同样,字体对象类型不是问题,转换通常很简单。
-
我使用 freetype 并且发现它很容易,但没有接触过vector data。有谁知道可以将曲线转换为线段然后用三角形填充形状的库?也许是一个有趣的练习,但自己做很费时间。 编辑我刚找到this,但你说你不想要渲染器位。
-
托管 DirectX 中有一种方法可以执行此操作:Mesh.TextFromFont。这是你要找的吗?
-
@SimoErkinheimo:啊,你在寻找文本网格,而不是像 3DS 或 VRML 这样的模型数据加载器;我的错。
标签: c++ opengl direct3d freetype glyph