OES / EXT / ARB_framebuffer_object扩展之间有什么区别。所有这些扩展都可以与OpenGLES 1.1或OpenGLES2.0应用程序一起使用吗?或者是否有任何指南w.r.t与哪个版本的GLESx.x一起使用的扩展名?
答案 0 :(得分:0)
确定经过一些谷歌搜索后,我找到了下面的信息...
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
但是,令牌名称映射到相同的值
此外,它们的用法不同:
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支持 作为单独的扩展公开。