我编写了一个能够使用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。
我的引擎是开源的,因此,您可以在此处查看:Source Code。
这些应该是重要的部分: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}
projmat
{2,0,0,0}
{0,2,0,0}
{0,0,-1,0}
{-1,-1,-0,1}}
答案 0 :(得分:0)
我太笨了..因为我有两节课。 从基类派生的1个基类和1个特定于平台的实现。 所有变量都是在基类AND中创建的。
所以,我有基类和其他类中矩阵的句柄 OpenGL句柄在基类中初始化。在gl3类中也有句柄,但它们没有初始化,因为它是基类的工作。
tl; dr pseudocode:
基类:glhandle projmatrix
gl3class:glhandle projmatrix
baseclass :: init():( baseclass).promatrix.init
gl3class :: update():( gl3class).projmatrix.update
:/