4

在标准 OGL 中绘制文本最快、最简单的方法是什么?

4

6 回答 6

4

文本居然被OpenGl牵扯进来
看看NeHe的这个例子

于 2010-02-27T19:14:04.153 回答
1

OpenGL 不支持绘制文本。您需要使用一些库将文本渲染为位图,然后您可以使用 OpenGL 来渲染位图。Freetype2 和 Pango 是很好的跨平台低级解决方案。ClanLib 等游戏编程库和 Qt 等 GUI 库也可能有自己的方式来呈现文本。

于 2010-02-27T19:08:33.027 回答
0

这取决于您正在使用的框架,就像我上面所说的那样。例如,SDL 是多平台的,可以使用 SDL 中的特殊库绘制文本:http: //gameprogrammingtutorials.blogspot.com/2010/02/sdl-tutorial-series-part-6-displaying.html

如果您使用 glut,请查看以下函数:glutStrokeString、glutBitmapString in glut documentation..

于 2010-02-27T19:13:15.553 回答
0

使用纹理。每个字符都是一个带纹理的四边形,纹理坐标包含特定字符。

然后,您可以使用显示列表进行仿射、在运行时生成表示字符串的栅格、勾画、混合...

您可以使用特定于平台的 OpenGL API(即 wglUseFontOutlines),但我认为自 OpenGL 3.2 起它将被弃用。

于 2010-02-27T19:41:37.580 回答
0

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

  1. 一些操作系统绑定,例如WGLAGL,确实具有有限的字体支持(大多数情况下它们将系统字体渲染为位图以在 Open GL 中使用)。
  2. GLUT工具包(和类似的工具包)也有一些字体支持(位图和笔画)。
  3. 您可以使用诸如FreeType之类的库(主要是字体渲染器,您仍可能希望使用Pango之类的东西进行文本布局)。
  4. 您可以使用简单的纹理四边形(这实际上是 Quake 1 所做的)。
于 2011-06-14T19:44:49.407 回答
-1

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

于 2010-02-27T19:05:07.420 回答