微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我不能在四边形上渲染我的深度图?

如何解决为什么我不能在四边形上渲染我的深度图?

一些介绍:

我目前正在尝试了解如何将深度图转换为点云。为了做到这一点,我像往常一样渲染场景并生成深度图。从深度图中,我尝试从给定的相机角度将场景重新创建为点云。

为了做到这一点,我创建了一个 FBO,以便我可以在纹理上渲染场景的深度图。深度图在纹理上渲染成功。我知道它已经完成,因为我能够使用 glGetTexImage 从深度纹理生成点云并转换获取的数据。

问题:

出于演示目的,我希望深度图在单独的窗口中可见。所以,我刚刚创建了一个简单的着色器来在四边形上绘制深度贴图纹理。然而,不是在四边形上绘制深度纹理,绘制的纹理是使用 GlBindTexture 绑定的最后一个纹理。例如:

 gluseProgram(simpleTextureViewerProgram);
 glBindVertexArray(quadVAO);
 glActiveTexture(GL_TEXTURE0);
 glBindTexture(GL_TEXTURE_2D,randomTexture);
 glBindTexture(GL_TEXTURE_2D,depthTexture);
 gluniform1i(quadTextureSampler,0);
 glDrawArrays(GL_TRIANGLES,6);

上面的代码在四边形上呈现“randomTexure”而不是“depthTexture”。正如我之前所说,“depthTexture”是我在 glGetTexImage 中使用的,因此它确实包含深度图。

我可能错了,但如果我不得不猜测,那么最后一个 GlBindTexture 命令就会失败,问题是“depthTexture”不是 RGB 纹理,而是深度分量纹理。这是原因吗?那么如何在四边形上绘制我的深度图?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。