【发布时间】:2014-06-15 21:01:26
【问题描述】:
我正在尝试在 3d 场景的顶部绘制一个显示应用程序 fps 的 hud。我知道这个问题的答案与更改初始化代码并将其切换回来有关。你知道,这些东西:
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 600, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
这是我需要渲染屏幕的 2d 部分的代码。在相关说明中,我很难理解所有这些代码的作用,并且还没有找到很好的资源。谁能指出我正确的方向。大多数教程不包含设置代码,我认为他们假设人们知道使用什么(但我不知道!)。
【问题讨论】:
-
我会为你解释
glOrtho电话。那是您的投影矩阵,它基本上定义了您的视图如何投影到您的视口中。正交投影矩阵是没有透视的;投影点的 X 和 Y 位置不会随着它们变得更远/更近而增长/缩小。您已经定义了投影,其中 0,600 是左下角,800,0 是右上角。您还定义了 Z 值的范围,使得 1 是离您最近的点,而 -1 是最远的点(这实际上与惯例相反,但如果您不要使用深度测试)。 -
您需要了解的其余内容比我在答案中解释的要复杂和耗时。要回答这个问题,需要告诉你如何加载字体等。这是一个非常复杂的过程,最好的办法是找到一个教程……如果你在实际实现文本渲染时遇到问题,那么这将是在 StackOverflow 上提出另一个问题的好时机。现在这个问题太宽泛了,很遗憾:-\