【问题标题】:How to draw a String to the window with OpenGL?如何使用 OpenGL 将字符串绘制到窗口?
【发布时间】:2012-10-31 04:57:42
【问题描述】:

我正在创建一个游戏,但我有一个问题:我如何在屏幕上绘制文本,因为我想在玩家每次捡起东西或受伤时打印一些东西。我已经知道 Graphics 的 drawString() 函数,但是如果我使用 OpenGL,我不确定这是否可以。是否有来自 OpenGL 的方法可以让我轻松地将文本打印到屏幕上?

【问题讨论】:

  • Afaik OGL 不附带字体绘图规范。我记得读过一个适合 OGL 接口的库,但我不确定它的名称。无论如何,您可以使用 FreeType 之类的字体库进行自己的绘图。
  • 好吧,我想只使用 OpenGL 库来保留它。我现在实际上不能使用 drawString,因为它不是 JFrame 或 Panel,而是 OpenGL 窗口。 :/。但是什么是 FreeType?

标签: java opengl


【解决方案1】:

在 OpenGL 中,没有可调用的函数/方法将文本渲染到屏幕上。

你有两个选择:要么 1) 使用库;要么或 2) 自己动手,创建自己的调用以将文本呈现到显示器。

1) 有许多不同的库可用于将文本呈现到显示器;然而,最明显和最容易获得的是在 GLUT 中。您可以使用其中的两个调用:

glutBitmapString() and glutStrokeString()

其中的第一个将以我认为可以称为 2d 方式的方式将文本呈现到显示器上(看起来像是粘贴在显示器的右侧)。后者带有显示 3d 文本。

可以参考

http://freeglut.sourceforge.net/docs/api.php

用于 API 参考。

2) 您可以创建一个函数/方法,使用标准 OpenGL 函数将字符纹理渲染到显示器,或者您可以使用模板缓冲区通过调用 glDrawPixels() 来生成字符。

我没有尝试过这些:我只是在想,所以你的里程可能会有所不同。祝你好运。

【讨论】:

  • 谢谢,我已经有不同的方法了,但这也很好!
【解决方案2】:

不,OpenGL 中没有轻松打印文本的方法。为此,您必须使用现有的库之一,或者您必须自己编写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2010-10-14
    相关资源
    最近更新 更多