【问题标题】:OpenGL - ARB extensionOpenGL - ARB 扩展
【发布时间】:2015-01-31 11:51:19
【问题描述】:

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

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

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

我读过(如果我理解良好的话),而不是新的 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

【问题讨论】:

  • OS X 使用 Legacy Profile 作为所有创建的 OpenGL 上下文的默认值,即 2.1。您需要告诉您要使用 Core Profile (3.2+)。看我answer的问题Shader can't be compiled
  • 除了What does ARB mean in the opengl functions?:驱动程序的创建者使用它们来支持很可能在下一版本的OpenGL中出现的功能。函数和常量以 ARB 为前缀,表示它们不是您使用的实际 OpenGL 版本的一部分。除了那个前缀之外,官方文档之间通常没有区别。
  • 好的,我现在可以使用函数了,但一切似乎都坏了。如果我使用glBindTextureglTexImageMultisample 或尝试获取GL_MAX_COLOR_TEXTURE_SAMPLES 号码,我会得到glGetError 错误GL_INVALID_ENUMGL_INVALID_OPERATION。我读了你的答案,你使用了 GLUT 库。如果我不使用 GLUT 怎么办?如何正确使用/包含它?谢谢。
  • 知道了,很抱歉有烦人的问题。非常感谢。

标签: opengl multisampling opengl-2.0


【解决方案1】:

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

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

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

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

这有助于您调试代码。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2012-01-22
    相关资源
    最近更新 更多