【发布时间】:2010-01-23 23:04:11
【问题描述】:
我正在使用 EAGL 上下文和视图来进行我的应用程序的正常屏幕渲染。这涉及(如预期的那样)创建渲染缓冲区和帧缓冲区并将其绑定到视图的CAEAGLLayer。这按预期工作。
但是,有时,我想使用 OpenGL 将某些几何图形完全渲染到屏幕外(目的是获取生成的原始像素。)
我以Apple docs tell me to here 的方式设置了屏幕外表面。我不会发布我正在使用的代码(除非有人问我),因为它是该页面上“屏幕外帧缓冲区对象”下给出的逐字记录。
但在最后一步,glCheckFramebufferStatusOES 总是返回失败 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 而不是预期的成功。我最初认为这是因为已经绑定了一个帧缓冲区(CAEAGLLayer 帧缓冲区),但即使我在创建离屏缓冲区之前销毁了该帧缓冲区,问题仍然存在。
任何人都可以为我指出如何使这项工作的正确方向吗?也许我误解了关于 GL 管道的一些基本内容(这不是第一次)。
谢谢!
【问题讨论】:
-
您确定要在帧缓冲区中附加至少一个颜色渲染缓冲区吗?这就是错误所暗示的。尝试在每次调用后添加
glGetError()以查看可能失败的步骤。 -
加文:感谢您提供正确方向的指针。作为一个相对的 GL 新手,我没想过要先尝试添加
glGetError调用!