我已经编码了一个引擎,它能够与OpenGL ESv2或OpenGL 3核心配置文件应用程序接口绘图。但是最近svn 3的部分坏了,我记不起我修改了什么,我也不能查看OpenGL提交日志,因为我把它托管在bountysource上,它现在已经关闭了,我把它带到了Google (但有坏掉的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
着色器:
GLv2:frag,vert
GL3:frag,vert
下面是一些示例图片:




如果有人能给我这个问题的解决方案,也许我会给它一点奖励,我会非常非常高兴和感激的。
编辑:通过一个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}
发布于 2011-06-23 08:08:20
我太dumb..it了,因为我有两节课。1个基类和1个从基类派生的平台特定实现。所有变量都是在基类和其他类中创建的。
所以,我在基类和另一个类中都有矩阵的句柄。
OpenGL句柄在基类中初始化。在gl3类中也有句柄,但它们没有初始化,因为它是基类的工作。
tl;dr伪代码:
基类:
gl3class: glhandle项目矩阵
基类::init():(基类).promatrix.init
gl3class::update():(gl3class).projmatrix.update
:/
https://stackoverflow.com/questions/6431262
复制相似问题