【发布时间】:2012-11-02 21:05:52
【问题描述】:
自从我学习 OpenGL 以来,我一直在进退两难:虽然我有一块支持 GL 4.3 的好显卡(nVidia GTX 550 ti 型号),但我的笔记本电脑却没有集成显卡(英特尔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 功能的着色器。但是,GLSL 1.5 有吗?
C/C++ 和 GLSL 中的预处理器指令怎么样?我可以用它来区分哪些功能适用于哪些功能?或者,是否更推荐(在 GLSL 或 C/C++ 的情况下)只编写完全独立的头文件/源文件/着色器文件来处理这个问题?
由于我只打算支持 3.x 到 4.x,我知道这应该比它可能的更简单。
更新
最近在我的笔记本电脑上更新了驱动程序后,事实证明,正如 Nicol Bolas 所说,目前英特尔 3000 卡上没有(并且可能永远不会)对 3.2 的任何支持。因此,为了使这个问题更简单,我想知道与 3.3 及更高版本相比,我可以在 3.1 版上实现哪些着色语言功能(无论是在答案中还是在外部 URL 中)。任何与此相关的 OpenGL 特定 C/C++ 特性/功能也将受到赞赏。
我的目标是基本上能够知道我必须做什么才能在我正在处理的项目(目前使用 GL 4.0 上下文)与 3.1 上下文之间进行调解。
如果还有什么不清楚的地方,我会相应地更新。谢谢。
【问题讨论】:
-
"我不知道这张卡是否甚至能够支持 OpenGL 3.2。" 它是 capable 的。它可能永远不会,因为英特尔不会更新它的驱动程序,但硬件能够做到这一点。事实上,它在 MacOSX 下提供 3.2 支持。
-
您到底要什么有点不清楚。我在这里看到的唯一问题是 OpenGL 的哪个版本提供了明确的顶点属性索引规范。
-
@NicolBolas 问题已更新。
-
现在听起来您要求我们为您提供高于 1.40 的 GLSL 版本的列表。
-
这很糟糕吗?可以为我指明正确方向的某种 URL 怎么样?
标签: opengl cross-platform preprocessor glsl