渲染矢量文本OpenGL

时间:2014-03-11 21:36:58

标签: c++ opengl graphics svg fonts

我已经阅读了本文(http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html)关于渲染由二次/三次贝塞尔曲线边界定义的形状。我本来希望能够建立这样的文本来填充,就好像是用钢笔或刷子以某种方式抚摸它一样。 (关于如何做到这一点的任何建议都是受欢迎的)

但是,我有点不确定在哪里可以获得具有本文规定格式的字体/形状(表示二次/立方贝塞尔曲线的点数组)。

有谁知道获取此格式的字体/矢量绘图的方法?该论文的作者提到了truetype字体,但根据

TrueType Font Parsing in C

看起来解析truetype字体可能涉及的不仅仅是这个?我知道也有像.svg这样的格式,但是我不知道从哪里开始,因为它比我想要的东西要多得多。

作为一个例子,是否存在某种类型的文件格式,我可以将.svg文件或truetype文件转换为,也许是通过使用inkscape的导出功能,以便生成的格式可以解析为一系列点和控制点?


我接受了以下答案,但对于对此感兴趣的任何人,您应该查看

https://github.com/quarnster/TTF

这正是我所寻找的。代码效果很好,但有点难以理解如何使用它。如果您阅读TTF格式更有意义,例如http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-chapter08

1 个答案:

答案 0 :(得分:3)

我建议使用跨平台库FreeType(http://www.freetype.org/)。 FreeType加载字体文件,除其他外,还提供字体中字形的边界曲线。具体来说,您应该查看函数FT_Outline_Decompose,它可以准确地给出您想要的内容。