支持GL版本3.1和4.x

由于我一直在研究OpenGL,我遇到了一些困境:虽然我有一个支持GL 4.3( nVidia GTX 550 ti型号)的好显卡,但我的笔记本电脑使用的是集成显卡(Intel HD 3000 ,从i5-2410M确切地说),它运行3.1版。 我不知道这张卡是否能够支持OpenGL 3.2。

无论哪种方式,如果事实证明驱动程序更新是核心i3 / i5处理器支持OpenGL 3.2+所需的全部内容,我仍然不确定应该在哪里看,或者我需要注意什么以支持3.x和4.x.

例如,AFAIK GLSL 1.4不支持layout(location=x) in blah blah特性中使用layout(location=x) in blah blah的着色器。 但是,GLSL 1.5?

对于C / C ++中的预处理器指令以及GLSL,我可以用它来区分哪些功能与哪些功能协同工作? 或者,更推荐(在GLSL或C / C ++的情况下)只编写完全独立的头文件/源代码/着色器文件来处理这个问题?

由于我只打算将3.x支持到4.x,我知道这应该比它更好的简单。

更新

在我的笔记本电脑上最近更新驱动程序后,事实证明,正如Nicol Bolas所说,目前在Intel 3000卡上没有(也可能不会)支持3.2。 因此,为了使这个问题变得更简单,我想知道3.1版本与3.3和更高版本相比,我可以在3.1版本上实现的着色语言功能(无论是在答案还是外部URL中)。 任何与此相关的OpenGL特定C / C ++特性/函数也将被赞赏。

我的目标是基本上能够知道为了在我正在进行的项目(目前使用GL 4.0上下文)与3.1上下文兼容之间进行调解,我必须做些什么。

如果有什么还不清楚,我会相应更新。 谢谢。


我通常会做的是检查OpenGL注册表中名为glcorearb.h的最新头文件。 它有一个从1.0开始的每个函数定义的列表,并且定义了它们被引入(并且符合资格)的各个版本的标签。

我并不是100%确定从哪里获得GLSL信息,但他们确实保留了旧版本的规格,因此您可以将最新版本与旧版本进行比较。

编辑:更正了错误的链接。

检查规范和这个预处理指令等。

这有帮助吗?

链接地址: http://www.djcxy.com/p/38513.html

上一篇: Supporting between GL versions 3.1 and 4.x

下一篇: OpenGL, how to set up GLSL version?