我编写了一个能够使用 OpenGL ESv2 或 OpenGL 3 Core Profile API 进行绘图的引擎。但是最近 OpenGL 3 部分坏了,我不记得我改变了什么,也不能查看 svn commitlog,因为我确实将它托管在 bountysource 现在已经关闭,我把它带到了谷歌(但 OGL3 端口坏了)。
使用 OpenGL ESv2 一切正常,但使用 OpenGL 3 一切都被水平拉伸和镜像。两者甚至使用相同的矩阵和顶点。
不要混淆。OpenGL ESv2 和 OpenGL 3 渲染器使用不同的方式来渲染它。
OpenGL ESv2 使用 VBO。OpenGL 3 使用 VAO 和 VBO。
我的引擎是开源的,所以,你可以在这里查看它:源代码。
这些应该是重要的部分:Sprite Class,Base Window Class,GL3 Window Class,GL ESv2 Window Class
着色器:
以下是一些示例图片:
如果有人能给我解决这个问题,我会非常非常高兴和感激,也许我会为此给予一点奖励。
编辑:使用 480x800 窗口,gldebugger 显示此矩阵:
modviewmat
{1, -0, 0, 0}
{0, 1, 0, 0}
{0, 0, 1, 0}
{5, 770, 0, 1}
项目
{2, 0, 0, 0}
{0, 2, 0, 0}
{0, 0, -1, 0}
{-1, -1, -0, 1}