gpt4 book ai didi

c++ - 在不使用 GLSL 的情况下迁移到最新的 OGL

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:40 30 4
gpt4 key购买 nike

我正在开发一款仅完全支持 GL < 2 的上网本。这一切都以超过 100fps 的速度运行。但是因为我读到状态机已被弃用,所以我试图移动,但这似乎是不可能的。很多函数没有使用最新的 glext.h 声明。所以我无法创建着色器程序或至少是 VBO。所以我尝试使用 glm 移动矩阵。但是从 glm 发送矩阵到 ogl 是通过调用 glUniformMatrix*v 实现的,这里也没有声明。那么有没有不使用GLSL就可以“升级”的方法呢?我不需要任何提示我只包含 GLSL,因为它又好又快等等。因为我不能使用它,我不敢相信没有它就不可能。

我用 OpenGL Extension Viewer 3 检查了扩展。报告说:
1.1 100%
1.2 100%
1.3 100%
1.4 100%
1.5 66%(不支持:GL_ARB_occlusion_query)
2.0 10%(仅支持:GL_EXT_stencil_two_side)
2.X 0%
3.X 0%
4.X 0%

最佳答案

…which fully supports GL <= 2.2 only. (…) But since I read that the state machine is deprecated, I'm trying to move, but it seems to be impossible.

首先:状态机没有被弃用。固定功能管道已被弃用。但这一变化仅适用于 OpenGL-3 核心及更远的地方。因此,如果您仅限于 OpenGL-2,那么固定功能和爵士乐仍然可用。

So is there a way to "upgrade" without using GLSL?

您确实意识到弃用固定功能管线意味着大致相同:现在一切都发生在着色器上。用 GLSL 编写的着色器。

GLSL 在 OpenGL-2 中也可用。这不是强制性的。

A lot of functions are not declared using the latest glext.h. So I can't create a shader programm or at least a VBO.

您需要的不仅仅是 glext.h。您还需要一些代码来从 OpenGL 实现中加载高级功能。一个流行的选择是 GLEW,可在 http://glew.sourceforge.net 获得

I can't use it

好吧,不是开箱即用的。但是使用 GLEW 是小菜一碟:

  1. 下载 GLEW
  2. 安装到额外安装的库和包含目录
  3. 替换所有出现的#include <GL/gl.h>#include <GL/glew.h>
  4. 将 glew32.lib 作为库依赖项添加到您的链接器设置
  5. 添加调用 glewInit();在每个 OpenGL 上下文创建之后。

关于c++ - 在不使用 GLSL 的情况下迁移到最新的 OGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13820202/

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