【发布时间】: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也定义了),它不起作用。
请帮助我。 :(
编辑:
如果你知道解决这个问题的不同方法,我会很高兴。
【问题讨论】:
-
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 版本的一部分。除了那个前缀之外,官方文档之间通常没有区别。
-
好的,我现在可以使用函数了,但一切似乎都坏了。如果我使用
glBindTexture、glTexImageMultisample或尝试获取GL_MAX_COLOR_TEXTURE_SAMPLES号码,我会得到glGetError错误GL_INVALID_ENUM或GL_INVALID_OPERATION。我读了你的答案,你使用了 GLUT 库。如果我不使用 GLUT 怎么办?如何正确使用/包含它?谢谢。 -
知道了,很抱歉有烦人的问题。非常感谢。
标签: opengl multisampling opengl-2.0