OpenGL - ARB 扩展
OpenGL - ARB extension
我使用的是 MacBook Pro(13 英寸,2010 年中)并且我使用 OpenGL。我注意到,库中缺少某些功能。我在 Internet 上找到了有关我的硬件的规格,上面写着:“支持 OpenGL 3.3”。很奇怪,所以我打印了我的 OpenGL 版本,它是 2.1,不是 3.3!。 (然后我发现,最新的 MacBook(2014)具有相同的 OpenGL 2.1 版,WTF)
那我差点从window跳下去了。 (JK)
我用谷歌搜索了一些关于 2.1 的东西,扩展名 ARB,但是没有文档,没有用法,没有人使用它。谁能给我解释一下,那是什么?如何使用它?有什么区别?
我读过(如果我理解得很好),而不是新的 OpenGL 3.X,有类似的 ARB 扩展。我希望,如果他们写的规范支持 3.3 版,ARB 应该是相同的(至少功能相同)。
如果有人向我解释发生了什么,我会很高兴。
问题:
我对 FBO 绘图的 多重采样纹理 有疑问。它可以由函数 glTexImage2DMultisample
和参数 GL_TEXTURE_2D_MULTISAMPLE
创建。它来自 3.2 或更高版本。
那么我应该用什么,或者可以用 ARB 来做?
我在图书馆找到了 GL_ARB_multisample
。那是什么?有什么用法吗?我在互联网上找到的所有功能都丢失了。在header中有一些定义如GL_MULTISAMPLE_ARB
。我试图通过 glEnable
启用它(GL_MULTISAMPLE
也被定义),它不起作用。
请帮助我。 :(
编辑:
如果你知道解决这个问题的不同方法,我会很高兴。
原题:
您必须将 OpenGL 上下文从 Legacy 切换到 Core 配置文件。核心配置文件需要对您的代码进行一些更改。您必须迁移您的代码和着色器,因为它是 OpenGL 和 GLSL 的新版本。查看官方视频,如何迁移和重写功能以验证新版本的代码。 Apple Developer Site - OpenGL(右侧视频)
您必须做的重要事情是添加 #import <OpenGL/gl3.h>
,所有功能都将可见以供使用。
要使其正常工作并调试着色器,必须设置 NSOpenGLPixelFormat
。将具有 NSOpenGLProfileVersion3_2Core
值的 NSOpenGLPFAOpenGLProfile
键添加到 NSOpenGLPixelFormatAttribute
数组:
NSOpenGLPixelFormatAttribute attribs[] = {
// ...
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
// ...
};
这有助于您调试代码。
非常感谢您的帮助,希望对您有所帮助。
我使用的是 MacBook Pro(13 英寸,2010 年中)并且我使用 OpenGL。我注意到,库中缺少某些功能。我在 Internet 上找到了有关我的硬件的规格,上面写着:“支持 OpenGL 3.3”。很奇怪,所以我打印了我的 OpenGL 版本,它是 2.1,不是 3.3!。 (然后我发现,最新的 MacBook(2014)具有相同的 OpenGL 2.1 版,WTF)
那我差点从window跳下去了。 (JK)
我用谷歌搜索了一些关于 2.1 的东西,扩展名 ARB,但是没有文档,没有用法,没有人使用它。谁能给我解释一下,那是什么?如何使用它?有什么区别?
我读过(如果我理解得很好),而不是新的 OpenGL 3.X,有类似的 ARB 扩展。我希望,如果他们写的规范支持 3.3 版,ARB 应该是相同的(至少功能相同)。
如果有人向我解释发生了什么,我会很高兴。
问题:
我对 FBO 绘图的 多重采样纹理 有疑问。它可以由函数 glTexImage2DMultisample
和参数 GL_TEXTURE_2D_MULTISAMPLE
创建。它来自 3.2 或更高版本。
那么我应该用什么,或者可以用 ARB 来做?
我在图书馆找到了 GL_ARB_multisample
。那是什么?有什么用法吗?我在互联网上找到的所有功能都丢失了。在header中有一些定义如GL_MULTISAMPLE_ARB
。我试图通过 glEnable
启用它(GL_MULTISAMPLE
也被定义),它不起作用。
请帮助我。 :(
编辑:
如果你知道解决这个问题的不同方法,我会很高兴。
原题:
您必须将 OpenGL 上下文从 Legacy 切换到 Core 配置文件。核心配置文件需要对您的代码进行一些更改。您必须迁移您的代码和着色器,因为它是 OpenGL 和 GLSL 的新版本。查看官方视频,如何迁移和重写功能以验证新版本的代码。 Apple Developer Site - OpenGL(右侧视频)
您必须做的重要事情是添加 #import <OpenGL/gl3.h>
,所有功能都将可见以供使用。
要使其正常工作并调试着色器,必须设置 NSOpenGLPixelFormat
。将具有 NSOpenGLProfileVersion3_2Core
值的 NSOpenGLPFAOpenGLProfile
键添加到 NSOpenGLPixelFormatAttribute
数组:
NSOpenGLPixelFormatAttribute attribs[] = {
// ...
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
// ...
};
这有助于您调试代码。
非常感谢您的帮助,希望对您有所帮助。