【发布时间】:2017-05-05 09:31:18
【问题描述】:
我使用 OpenGL 帧缓冲区对象 (FBO) 使用 GL_ARB_FRAMEBUFFER_OBJECT 或 GL_EXT_FRAMEBUFFER_OBJECT 扩展来渲染纹理。
但是,有大量视频卡(主要是 Intel,具有 OGL 2.0 甚至 3.0)支持 GL_ARB_FRAMEBUFFER_OBJECT 但具有 GL_MAX_FRAMEBUFFER_WIDTH=0 和 GL_MAX_FRAMEBUFFER_HEIGHT=0,因此当我尝试将纹理附加到 FBO 时它会失败。
这是否真的意味着 FBO 不能用于渲染这些显卡上的纹理?有解决方法吗? 渲染到纹理是一项非常重要的渲染技术,它在任何地方都能很好地与 Direct3D 配合使用,因此也应该有一种使用 OpenGL 的方法。
【问题讨论】:
-
不,它没有。 GL_MAX_FRAMEBUFFER_WIDTH 要求至少为 16384。这可能是驱动程序错误,但我发现它更有可能是您未显示的代码中的错误。
标签: opengl fbo render-to-texture