OpenGL - ARB扩展

时间:2015-01-31 11:51:19

标签: opengl multisampling opengl-2.0

我正在使用MacBook Pro(13英寸,2010年中),我使用OpenGL。我注意到,库中缺少一些功能。我在互联网上找到了关于我的硬件的规范,它说:" 支持OpenGL 3.3 "。这很奇怪所以我打印了我的OpenGL版本和 IT IS 2.1,NO 3.3!。 (然后我发现,最新的MacBooks(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。我试图通过glEnable启用它(GL_MULTISAMPLE也已定义),但它无法正常工作。

请帮帮我。 :(

修改

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

原始问题: OpenGL - FBO and alpha blending

1 个答案:

答案 0 :(得分:1)

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

重要的是,您必须添加#import <OpenGL/gl3.h>并且所有功能都可以使用。

要使其工作,并调试着色器,必须设置NSOpenGLPixelFormat。将带有NSOpenGLPFAOpenGLProfile值的NSOpenGLProfileVersion3_2Core密钥添加到NSOpenGLPixelFormatAttribute数组:

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

这有助于您调试代码。

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