gpt4 book ai didi

c++ - OGL ESv2 中的同一游戏不适用于 OGL3

转载 作者:太空狗 更新时间:2023-10-29 23:19:52 28 4
gpt4 key购买 nike

我编写了一个能够使用 OpenGL ESv2 或 OpenGL 3 Core Profile API 进行绘图的引擎。但最近 OpenGL 3 部分损坏了,我不记得我更改了什么,也无法查看 svn 提交日志,因为我确实在 bountysource 托管了它,现在它已经关闭了,我把它带到了谷歌(但 OGL3 端口损坏了).

使用 OpenGL ESv2 一切正常,但使用 OpenGL 3 一切都被水平拉伸(stretch)和镜像。两者甚至使用相同的矩阵和顶点。

不要混淆。 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

以下是一些示例图片: OpenGL 3 - Menu OpenGL 3 - Ingame OpenGL ESv2 - Menu OpenGL ESv2 - Ingame

如果有人能为我提供这个问题的解决方案,我会非常非常高兴和感激,也许我会为此给予一点奖励。

编辑:使用 480x800 窗口,gldebugger 显示此矩阵:
调制 View 垫
{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}

最佳答案

我太笨了..这是因为我有 2 节课。1个基类和1个从基类派生的平台特定实现。所有变量都在基类和另一个基类中创建。

所以,我在基类和其他类中都有矩阵的句柄。
OpenGL 句柄在基类中初始化。在 gl3 类中也有句柄,但它们没有被初始化,因为它是基类的工作。

tl;dr 伪代码:

基类:glhandle projmatrix
gl3class: glhandle projmatrix

基类::init(): (基类).promatrix.init
gl3class::更新(): (gl3class).projmatrix.update

:/

关于c++ - OGL ESv2 中的同一游戏不适用于 OGL3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431262/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com