OES / EXT / ARB_framebuffer_object

时间:2013-02-22 06:05:47

标签: opengl-es

OES / EXT / ARB_framebuffer_object扩展之间有什么区别。所有这些扩展都可以与OpenGLES 1.1或OpenGLES2.0应用程序一起使用吗?或者是否有任何指南w.r.t与哪个版本的GLESx.x一起使用的扩展名?

1 个答案:

答案 0 :(得分:0)

确定经过一些谷歌搜索后,我找到了下面的信息...

  1. GLES FBO 一个。是GLES2的核心 湾在GLES1下,通过扩展名GL_OES_framebuffer_object公开,   API入口点是glFunctionNameOES
  2. OpenGL 1.x / 2.x with GL_EXT_framebuffer_object API入口点是glSomeFunctionEXT
  3. OpenGL 3.x FBO / GL_ARB_framebuffer_object 在GL 3.x下,FBO是核心,API点是glSomeFunction 此外,GL 2.x,GL_ARB_framebuffer_object还有一个“backport”延期 API入口点是glSomeFunction()。注意缺少EXT或ARB后缀。

    令牌命名:  1A。没有后缀  1B。 _OES

    1. _EXT
    2. 没有后缀。
    3. 但是,令牌名称映射到相同的值 此外,它们的用法不同: 1a,1b:深度和模板缓冲区作为渲染缓冲区特别附着       或者也可能支持将两者作为一个缓冲器来连接       扩展名GL_OES_packed_depth_stencil。
            深度缓冲区是16位的默认值!

      2,3:规格允许分别深度和模板,但是     所有消费级桌面硬件都不支持这个,而是支持     附加模板和深度缓冲区调用深度模板纹理。        2.扩展名GL_EXT_packed_depth_stencil,类型为GL_DEPTH24_STENCIL8_EXT        3. FBO规范的一部分,类型为GL_DEPTH24_STENCIL8     注意:标记GL_DEPTH24_STENCIL8和GL_DEPTH24_STENCIL8_EXT的值           是相同的。

      GL_EXT_framebuffer_object的问题 a)GL_EXT_framebuffer_object可能未在GL 3.x上下文中列出,因为 FBO是核心。 b)同样,如果具有较新硬件的GL 2.x上下文,则可能  未列出GL_EXT_framebuffer_object,但GL_ARB_framebuffer_object是

      能力差异: 通过3.x / GL_ARB_framebuffer_object的FBO支持允许颜色缓冲区附加 另外,MSAA和blit功能有不同的类型和解决方案 是3.x核心的一部分,是GL_ARB_framebuffer_object的一部分。

      通过GL_EXT_framebuffer_object支持FBO,包括blit和MSAA支持 作为单独的扩展公开。