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