我已经尝试了一段时间来创建一个带有现代opengl的简单2D引擎,现代opengl我的意思是我不打算使用它:
glBegin(); glEnd(); glVertex2i(); glOrtho();
等 我正在使用GLSL。
我遇到了一些问题。这是一些问题
如果可以的话,请在 Java 谢谢
中发布代码答案 0 :(得分:0)
免责声明:我对现代OpenGL没有太多经验,但我使用过最近的DirectX'。大多数一般概念在这里应该是相同的。
如何创建坐标系?
现在没有固定的功能管道,因此必须在顶点着色器内手动进行所有坐标转换。它消耗一个顶点然后产生一个转换到屏幕空间。在2D图形的情况下,甚至不需要打扰投影矩阵。
考虑由2D向量组成的输入流。因此,使用3D矩阵实现旋转,缩放和平移。但输出向量应为4D。伪代码:
input = getInputVertex();
transformed = view * world * vec3(input, 1.0f);
output = vec4(transformed, 1.0f);
'世界'是精灵的世界矩阵,'视图'是相机矩阵。