LWJGL 3 - 渲染文本

6
我正在尝试使用非过时的OpenGL在LWJGL 3中呈现文本。我不能使用依赖于较旧版本LWJGL和过时的OpenGL的Slick-Util。
如果我使用标准C++ OpenGL编写,我将使用FreeType,但我现在不能。那么我该如何开始创建一个能够处理文本呈现的类,并支持以下功能:
- 不同字体/字号/粗体、斜体等 - 字体颜色 - 字体变换
有没有人有关于这个主题的好资源,最好是用Java和LWJGL?

1
您可以将AWT字体作为输入,然后使用Graphics对象在BufferedImage上绘制从0到256的每个字母。使用此方法无法在运行时更改字体大小/颜色,但它被广泛使用。 - JackWhiteIII
谢谢,我明白了!你能提供一个例子吗?这样我就知道该怎么做了。@JackWhiteIII - Tetramputechture
这是Slick2D的实现方式。他们使用即时模式,但我相信您能够将其转换为非过时的代码。 - JackWhiteIII
重新阅读您的问题,我的评论似乎没有太多意义。我真正想说的是,当涉及到实际创建字体时,Slick2D几乎使用了最好的方法,但要呈现字体,您需要将其“drawQuad”方法转换为最新的OpenGL标准。我不熟悉新标准,它们对我来说似乎过于复杂,但基本上您只需要一个VBO并以某种方式填充数组值(这确实是每次都让我困扰的事情)。 - JackWhiteIII
1个回答

3
LWJGL3内置STB绑定,可以加载TTF字体文件。LWJGL3仓库中有示例,向您展示如何使用它来呈现文字。更多详细信息和示例,请点击此处

2
这些示例都使用了已弃用的OpenGL :/ @Gavin - Tetramputechture
你需要关注的主要事情是STB API,它们可以很容易地使用现代OpenGL来实现。 - Gavin
我无法渲染文本,有任何解决方案吗? - Maetschl
3
请提供一个示例,因为提供的链接现在已经失效。 - xdevs23

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