在OpenGL中绘制字符串

4
什么是在标准OGL中绘制文本的最快,最简单的方法?
6个回答

4

1
在OpenGL已经存在这么多年之后,几乎每个OpenGL应用程序都需要渲染文本,你可能会认为它会出现在GLU或其他地方,但实际上它并没有真正进步。即使使用FreeType这样的库,“令人惊讶的复杂”也是一个很好的描述。 - Ricket
OpenGL并不是以跟上现代软件设计概念而闻名。你有大量的遗留代码,一大堆扩展等等。希望Vulkan在处理这个特定问题——文本渲染时更加详尽。 - rbaleksandar

1

OpenGL不支持绘制文本。您需要使用某个库将文本渲染到位图上,然后才能使用OpenGL来渲染位图。Freetype2和Pango是很好的跨平台低级解决方案。游戏编程库(如ClanLib)和GUI库(如Qt)也可能有自己的绘制文本方法。


0

OpenGL 不直接支持文本渲染。您有多种选择:

  1. 一些操作系统绑定,例如 WGLAGL,具有有限的字体支持(它们大多将系统字体渲染为位图以在 Open GL 中使用)。
  2. GLUT 工具包(和类似工具包)也具有一些字体支持(位图和笔画)。
  3. 您可以使用诸如 FreeType 的库(主要是字体渲染器,您仍然可能希望使用像 Pango 这样的文本布局工具)。
  4. 您可以使用简单的纹理矩形(这实际上就是 Quake 1 所做的)。

0

0
使用纹理。每个字符都是一个带纹理的四边形,纹理坐标包含特定的字符。
然后,您可以使用显示列表进行仿射变换,在运行时生成表示字符串的光栅,轮廓,混合等。
您可以使用特定于平台的OpenGL API(例如wglUseFontOutlines),但我认为它自OpenGL 3.2以来已被弃用。

-1

这取决于您使用的框架。一种常见的方法是将文本渲染到离屏缓冲区并将其用作纹理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接