使用pyopengl绘制拉伸的三维文本?

时间:2015-07-26 05:35:42

标签: python 3d freetype pyopengl true-type-fonts

使用pyopengl绘制3d文本的最佳方法是什么,最好是使用现代的opengl?

似乎有很多例子,但主要是旧式的opengl而不是python

1 个答案:

答案 0 :(得分:1)

  1. 首先,您需要一个需要字体的文字大纲。 在Windows上,您可以WinGDI fonts使用creating a dummy contextselecting一个created font,每个角色getting outlines。对于Truetype load glyphs,您access进入面部,只需GLU tesselator他们的大纲。
  2. 前面和后面在3D文本的背面,您需要将轮廓/轮廓转换为三角形。使用好的旧tesselation shader,OpenGL 4的相对新CGAL或像https://jsfiddle.net/8nLexkn5/2/这样的几何库。然后简单地绘制正面的三角形,并为背面绘制一些额外的深度。
  3. 对于边,您只需跨越轮廓线/线后面的矩形,高度等于您希望的文本深度 - 这些是您的文本边。您可以简单地使用深度矢量并在之后转换所有内容,或者计算具有2个段的正交矢量。
  4. 你注意到这一切都很昂贵,所以不要犹豫,尽可能地缓存。

    我引用了C源代码,因为我对这些内容比较熟悉,但我敢打赌,我可以使用python等价来解释这些内容。