将文本转换为网格
Converting text to mesh
我需要将文本(字符串+字体)转换为网格(顶点、索引、三角形等),但我不需要绘制任何内容。我只需要从一个API中获取一个字符串,并将其推送为顶点&索引到另一个。做这件事最简单/最容易/最好的方法是什么?字体度量和文本放置当然是可用的,不需要其他转换。
我目前正在使用VC++。然而,任何类型的开放源码(C/C++、C#、VB…)和"非开放但免费"的COM/.NET库都是很棒的。
我听说过FreeType。它是否回应了我的祈祷,还是有更好的东西?
编者按:正如NicoSchertler评论的那样,DirectX库中似乎有Mesh.TextFromFont函数可以起到这个作用。谢谢你,尼科!当我有时间在练习中测试这一点时,我会更新。
Mesh.TextFromFont听起来不错,但它并没有拯救这一天,因为我不知道如何从网格对象中获得实际的点/三角形数据。
但后来我发现了这个。在这个项目中,GraphicsPath用于从字形创建点路径。然后将点覆盖到多边形中,然后使用Poly2Tri将多边形镶嵌到三角形中。
快速浏览源代码,经过一些小的修改和代码剥离,我最终得到了一个很好的.NET-dll,它有一个简单的静态函数,可以完成我需要的一切。
要将文本转换为网格,可以使用ttf2mesh库。这个库只包含一个C文件,允许打开truetype字体(.ttf)并将其字形转换为二维或三维空间中的网格对象。存储库中有一个示例。一个有趣的特性是不依赖任何第三方库(如libfreetype)。此外,在示例中还有一个ttf2obj程序,它允许您将字体文件转换为OBJ文件。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何构建带有纹理和网格转换.exe的 SdkMesh?
- 如何将三角孔贴片转换为曲面网格
- CGAL将非manifold nef_polyhedron_3转换为三角网格
- 如何将平面网格转换为CGAL的布置
- 将三维阵列(矢量)转换为vtk非结构化网格
- 将文本转换为网格
- 像素文本到三维网格的转换库
- 将网格内的数字转换为相应的x,y坐标
- 如何在不破坏网格缠绕顺序的情况下将Z-Up顶点转换为Y-Up顶点.(DX9c)