【发布时间】:2013-11-16 17:49:47
【问题描述】:
我已经尝试了一段时间用现代 opengl 创建一个简单的 2D 引擎,用现代 opengl 我的意思是我不会使用这个:
glBegin(); glEnd(); glVertex2i(); glOrtho();
等等, 我正在使用 GLSL。
我遇到了一些问题。这里有一些问题
- 我正在尝试不使用 glOrtho() 和 glViewport() 等旧方法创建 2D 坐标系,我知道我应该在这里和那里使用矩阵,但如何?如何创建坐标系?
- 如何在 GLSL 中使用 texCoords 在 2D 空间中加载纹理。
- 如果有人可以解释或指出如何设置纹理大小的来源,现在我必须使用从 -1 到 1 的位置,但我想说的是大小为 16 * 16例子。
- 有没有办法从 GLSL 打印出错误?当我遇到错误时,它只是打印出找不到制服。因为位置是 == -1
- 如何使用和创建矩阵在2D空间中移动、缩放和旋转。
- 我可以使用 Matrix2f 代替 Matrix4f 吗?
如果可以的话,请用 Java 发布代码,谢谢
【问题讨论】:
-
glViewport 未被弃用,并且必须在现代 OpenGL 中使用。事实上,调用它很重要,以便 OpenGL 知道如何将 NDC 坐标映射到窗口坐标。