【发布时间】:2015-09-15 08:01:30
【问题描述】:
我正在尝试使用未弃用的 OpenGL 在 LWJGL 3 中呈现文本。我不能使用 Slick-Util,它依赖于旧版本的 LWJGL 和已弃用的 OpenGL。
如果我用标准 C++ OpenGL 编写,我会使用 FreeType,但我不能。那么我将如何开始创建一个可以处理文本渲染的类,并支持:
- 不同的字体/字体大小/粗体、斜体等
- 字体着色
- 字体转换
有没有人有关于这个主题的任何好的资源,最好是 Java 和 LWJGL?
【问题讨论】:
-
您可以将 AWT 字体作为输入,然后使用 Graphics 对象在 BufferedImage 上绘制从 0 到 256 的每个字母。使用这种方法,字体大小/颜色在运行时是不可更改的,但它被广泛使用。
-
谢谢,有道理!你能举个例子说明你在说什么吗?只是让我明白该怎么做。 @JackWhiteIII
-
this 是 Slick2D 的做法。他们使用立即模式,但我相信您可以将其转换为不推荐使用的代码。
-
再次阅读您的问题,我的评论似乎没有多大意义。我真正想说的是,在实际创建字体时,Slick2D 几乎使用了最好的方法,但是要渲染字体,您需要将他们的
drawQuad方法转换为最新的 OpenGL 标准。我不熟悉新标准,它们对我来说似乎不必要地复杂,但基本上你只需要一个 VBO 并以某种方式填充数组值(这确实是我每次都得到的)。