代码之家  ›  专栏  ›  技术社区  ›  oneat

在opengl中绘制字符串

  •  3
  • oneat  · 技术社区  · 14 年前

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

    6 回复  |  直到 13 年前
        1
  •  4
  •   Martin Beckett    14 年前

    opengl中惊人地涉及到文本
    看一看 this example from NeHe

        2
  •  1
  •   Tronic    14 年前

    OpenGL不支持绘图文本。需要使用一些库将文本渲染为位图,然后可以使用opengl渲染位图。freetype2和pango是很好的跨平台低级解决方案。游戏编程库(如clanlib)和gui库(如qt)也可能有自己的文本呈现方式。

        3
  •  0
  •   Protostome    14 年前

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

    如果使用glut,请查看以下函数: 暴饮暴食, glutBitMapString 在GLUT文档中..

        4
  •  0
  •   Luca    14 年前

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

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

    您可以使用特定于平台的opengl api(即wglusefontoutlines),但我认为自opengl 3.2以来,它将被弃用。

        5
  •  0
  •   mlepage    13 年前

    opengl不支持直接的文本呈现。您有多种选择:

    1. 一些操作系统绑定,例如 小精灵 自动增益控制 ,字体支持有限 (主要是渲染系统字体 用于open gl)。
    2. 这个 过剩 工具包(及类似 工具箱)也有一些字体支持 (位图和笔划)。
    3. 你可以用 图书馆,如 自由类型 (大部分是 字体渲染器,您可能仍然希望 使用类似于 小精灵 对于文本 版面设计)。
    4. 你可以用简单的 织构的 四边形 (这实际上是 地震1)。
        6
  •  -1
  •   Otto Allmendinger    14 年前

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