2

我正在尝试通过遵循 arcsynthesis 教程将一些代码从固定函数 OpenGL 移动到 GLSL 着色器。首先,我遇到了版本 330 不可用的问题,在快速搜索之后似乎很常见,但建议是 150 应该可以正常工作。但是,除了 120 之外,没有其他可用的 GLSL 着色器版本,这对于 10.8.4 上的 2013 Macbook Air 是否正常?或者 OS X 下 OpenGL + Qt 5 的组合是否有一些奇怪的地方?

编辑:https ://developer.apple.com/library/ios/samplecode/GLEssentials/Introduction/Intro.html如果我在那里构建示例应用程序,我可以使用 140 和 150(不尝试 330,因为它需要着色器重写)。有谁知道这是否是与 OpenGL、Qt5 和 OS X 相关的特定问题?

4

1 回答 1

3

所以:

QGLFormat glFormat;
glFormat.setVersion(3, 2);
glFormat.setProfile(QGLFormat::CoreProfile);

// Set the default GL format to OpenGL 3.2 Core
QGLFormat::setDefaultFormat(glFormat);

这就是它工作所需要的,这在文档中并不明显。那会给你 150。如果你把它改成glFormat.setVersion(3, 2)3, 3 它似乎给了 330 版本,但我不知道这会有多可靠,直到我做了更多的工作。

于 2013-10-09T17:55:23.017 回答