首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用GLSL移动到最新的OGL

不使用GLSL移动到最新的OGL
EN

Stack Overflow用户
提问于 2012-12-11 20:14:13
回答 3查看 136关注 0票数 0

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

我用OpenGL扩展查看器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%

EN

回答 3

Stack Overflow用户

发布于 2012-12-11 20:40:07

…仅完全支持GL <= 2.2。(…)但由于我读到状态机已被弃用,我正在尝试移动,但这似乎是不可能的。

首先:状态机没有被弃用。固定函数管道已弃用。但此更改仅适用于OpenGL-3核心及更高版本。因此,如果您仅限于OpenGL-2,那么修复函数和所有的jazz仍然可用。

那么,有没有办法不使用

就“升级”呢?

您确实意识到,弃用固定的函数管道意味着大致相同:现在着色器发生了所有事情。用GLSL编写的着色器。

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

很多函数都不是使用最新的glext.h声明的。所以我不能创建一个着色器程序或者至少一个VBO。

你需要的不仅仅是glext.h。您还需要一些代码来加载OpenGL实现中的高级函数。一个流行的选择是GLEW,可以在http://glew.sourceforge.net上找到

我不能用它

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

GLEW

  • 下载GLEW

  • 安装到附加安装的库中,并包括directories

  • Replace所有出现的#include <GL/glew.h>

  • Add glew32.lib作为链接器设置的库依赖项

  • glewInit();在每次创建OpenGL上下文后立即添加对OpenGL的调用。
票数 6
EN

Stack Overflow用户

发布于 2012-12-11 20:29:40

尝试使用glew。它不会直接解决你的问题,但有很多(可能相关的)在Windows上使用OpenGL扩展的问题。

票数 1
EN

Stack Overflow用户

发布于 2012-12-11 20:51:36

查看您的平台是否支持OpenGL ES 2.0。这实际上已经成为现代台式机的标准。如果是这样,请使用OpenGL ES 2.0。

此外,您还可以在OpenGL扩展中找到许多所需的功能。查看您的平台上有哪些可用扩展,并注意函数名称可能与较新的标准名称不同(例如glBindFramebuffer_EXT)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13820202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档