Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL:当我将GLU NONE传递给glDrawBuffer和glReadBuffer时,屏幕变白_Opengl_Fbo_Depth Buffer - Fatal编程技术网

OpenGL:当我将GLU NONE传递给glDrawBuffer和glReadBuffer时,屏幕变白

OpenGL:当我将GLU NONE传递给glDrawBuffer和glReadBuffer时,屏幕变白,opengl,fbo,depth-buffer,Opengl,Fbo,Depth Buffer,我想在渲染器中执行仅深度传递。我已经为这个过程创建了一个FBO,我只附加了一个深度缓冲区。我还将GL_NONE传递给glDrawBuffer和glReadBuffer,如下线程所示: 但是,在绘制此帧后,屏幕将完全变为白色。如果禁用该过程,则会看到预期的输出(由其他过程产生) 你知道为什么会这样吗?起初,我在使用一个现有的FBO(处理屏幕外渲染)进行仅深度过程。然后我为这个场景创建了另一个FBO。这两种方法仍然会导致白色屏幕 这篇文章是否提供了问题的可能来源 使用apitrace(),我现在

我想在渲染器中执行仅深度传递。我已经为这个过程创建了一个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附件0


这能让事情更清楚吗?我不太清楚上面的代码片段是如何导致我的屏幕变白的。

您需要提供更多信息。更确切地说,是一些信息。一般的描述不足以发现代码错误。只是更新了问题。这样更好吗?