渲染草书字体

时间:2018-05-17 22:45:32

标签: opengl graphics fonts rendering

我有一些在opengl中渲染文本的经验,其中的方法是使用字体字形(可以通过像freetype这样的东西创建)然后通过拉动单个lettings使用纹理坐标来使用,但是我想尝试使用更多创建字体,并考虑如何渲染草书字体。 我注意到这里的很多字体都是草书字体,并且无法找到有关渲染草书字体的任何信息。我意识到纹理查找方法可能不会以相同的方式工作。我正在寻找一些指导方向,因为我无法找到方向。

https://www.fontsquirrel.com/fonts/list/popular

我唯一能想到的就是想出一组贝塞尔曲线来表示整个句子然后渲染它。这将使得动态渲染文本变得困难,因为曲线需要实时连接以保持平滑。

有没有人在渲染草书字体方面有任何成功?

2 个答案:

答案 0 :(得分:2)

草书字体的工作方式与非草书字体相同。唯一的问题是相邻字形的轴对齐边界框可能重叠。从理论上讲,这可能发生在任何字体上 - 不仅仅是草书字体。

字形不仅以其宽度和高度为特征。它还具有用于布置文本的其他信息。在FreeType中,这些是轴承和前进距离(参见documentation)。超前距离告诉您文本光标将前进多少,即下一个字形将从何处开始。轴承将告诉您在当前文本光标和实际字形之间留出多少空格。对于非常倾斜的字形,此方位可能是负的,即字形从光标位置的左侧开始。类似地,提前距离可以小于字形宽度。这允许相邻的字形交织在一起。

顺便说一句,不同的API以不同的方式调用这些字体指标。例如,DirectWrite称它们为悬在式。

答案 1 :(得分:1)

有效的是你要做的是定义角色之间的关系,并使用相同角色的视觉变体,以便它们看起来是链接的。

例如,草书小写' L'旁边是一个草书小写' O'将从L的底部链接到O的顶部;然而,如果L之后的字母是,那就说“我”,那么它必须链接到底部的字符。

如果您打算使用某些预定的文字,那么您当然也可以手动安排。如果您正在寻找实时解决方案,则需要采用上述方法。

this page处获取战利品,也许在"实施"中找到一些库。部分,应指向即用资产的方向。

相关问题