2

我正在使用 MacBook Pro(13 英寸,2010 年中)并且使用 OpenGL。我注意到,库中缺少一些功能。我在互联网上找到了关于我的硬件的规范,上面写着:“支持 OpenGL 3.3 ”。这很奇怪,所以我打印了我的 OpenGL 版本,它是 2.1,不是 3.3!. (然后我发现,最新的 MacBook(2014 年)具有相同的 OpenGL 版本 2.1,WTF)

然后我差点从窗户跳下来。(JK)

我用一些扩展ARB搜索了一些关于 2.1 的内容,但是没有文档,没有用法,没有人使用它。谁能解释一下,那是什么?如何使用它?有什么区别?

我读过(如果我理解得好),而不是新的 OpenGL 3.X,有类似的 ARB 扩展。我希望,如果他们写入支持 3.3 版的规范,ARB 应该是相同的(至少相同的功能)。

如果有人向我解释发生了什么,我会很高兴。

问题:

我对 FBO 绘图的多样本纹理有疑问。它可以由glTexImage2DMultisample带有参数的函数创建GL_TEXTURE_2D_MULTISAMPLE。它来自 3.2 或更高版本。

那么我应该使用什么,或者使用 ARB 可以做到吗?

GL_ARB_multisample在图书馆找到的。那是什么?有什么用处吗?我在互联网上找到的所有功能都丢失了。有一些定义,例如GL_MULTISAMPLE_ARB在标题中。我试图通过glEnableGL_MULTISAMPLE也定义)启用它,它不起作用。

请帮我。:(

编辑:

如果您知道解决此问题的不同方法,我会很高兴。

原始问题: OpenGL - FBO 和 alpha 混合

4

1 回答 1

1

您必须将 OpenGL 上下文从 Legacy 切换到 Core 配置文件。核心配置文件需要对您的代码进行一些更改。您必须迁移您的代码和着色器,因为它是新版本的 OpenGL 和 GLSL。查看官方视频,如何迁移和重写函数以验证新版本的代码。Apple Developer Site - OpenGL(右侧的视频)。

您必须做的重要事情是添加#import <OpenGL/gl3.h>,所有功能都将可见以供使用。

要让它工作并调试着色器,必须设置NSOpenGLPixelFormat. NSOpenGLPFAOpenGLProfile将带有NSOpenGLProfileVersion3_2Core值的键添加到NSOpenGLPixelFormatAttribute数组:

NSOpenGLPixelFormatAttribute attribs[] = {
    // ...
    NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
    // ...
};

这可以帮助您调试代码。

非常感谢您的帮助,我希望这对您有所帮助。

于 2015-01-31T16:00:06.640 回答