OpenGL:当我将GLU NONE传递给glDrawBuffer和glReadBuffer时,屏幕变白
我想在渲染器中执行仅深度传递。我已经为这个过程创建了一个FBO,我只附加了一个深度缓冲区。我还将GL_NONE传递给glDrawBuffer和glReadBuffer,如下线程所示: 但是,在绘制此帧后,屏幕将完全变为白色。如果禁用该过程,则会看到预期的输出(由其他过程产生) 你知道为什么会这样吗?起初,我在使用一个现有的FBO(处理屏幕外渲染)进行仅深度过程。然后我为这个场景创建了另一个FBO。这两种方法仍然会导致白色屏幕 这篇文章是否提供了问题的可能来源 使用apitrace(),我现在可以显示我认为负责白屏的OpenGL代码: 在这个简单的示例中,我仅将深度附着附着到FBO 2。然后,我将0传递给glFramebufferTexture2D()和glFramebufferRenderbuffer(),以分离GL_COLOR_ATTACHMENT0上的任何以前的附件,并将GL_NONE传递给glDrawBuffer()和glReadBuffer()。然后立即绑定默认FBO(0),并将视口恢复回1280x720。我还将GL_传递回glDrawBuffer()和glReadBuffer() 在此之后,我的代码的工作版本和非工作版本继续绑定另一个FBO进行屏幕外渲染。然后,我分别使用glFramebufferTexture2D()和glFramebufferRenderbuffer()附加到GL_颜色_附件0和GL_深度_附件。对于glDrawBuffer()和glReadBuffer(),我提供了GL\u COLOR\u附件0OpenGL:当我将GLU NONE传递给glDrawBuffer和glReadBuffer时,屏幕变白,opengl,fbo,depth-buffer,Opengl,Fbo,Depth Buffer,我想在渲染器中执行仅深度传递。我已经为这个过程创建了一个FBO,我只附加了一个深度缓冲区。我还将GL_NONE传递给glDrawBuffer和glReadBuffer,如下线程所示: 但是,在绘制此帧后,屏幕将完全变为白色。如果禁用该过程,则会看到预期的输出(由其他过程产生) 你知道为什么会这样吗?起初,我在使用一个现有的FBO(处理屏幕外渲染)进行仅深度过程。然后我为这个场景创建了另一个FBO。这两种方法仍然会导致白色屏幕 这篇文章是否提供了问题的可能来源 使用apitrace(),我现在
这能让事情更清楚吗?我不太清楚上面的代码片段是如何导致我的屏幕变白的。您需要提供更多信息。更确切地说,是一些信息。一般的描述不足以发现代码错误。只是更新了问题。这样更好吗?