opengl - 为什么我不能在四边形上渲染我的深度图?
问题描述
一些介绍:
我目前正在尝试了解如何将深度图转换为点云。为了做到这一点,我像往常一样渲染场景并生成深度图。从深度图中,我尝试从给定的摄像机角度将场景重新创建为点云。
为了做到这一点,我创建了一个 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, 0, 6);
上面的代码在四边形上呈现“randomTexure”而不是“depthTexture”。正如我之前所说,“depthTexture”是我在 glGetTexImage 中使用的,所以它确实包含深度图。
我可能错了,但如果我不得不猜测,那么最后一个 GlBindTexture 命令会失败,问题是“depthTexture”不是 RGB 纹理,而是深度分量纹理。这是原因吗?那么如何在四边形上绘制我的深度图呢?
解决方案
推荐阅读
- ios - 如何用 where 子句重构这个 Swift 协议?
- python - 根据python中的\ n将列表拆分为n个块
- python - How to call OPL by doopl while defining the objective function in Python?
- airflow - 如何在两个节点上运行气流
- r - 使用 persp() 在绘图上绘制多边形
- python - 随着使用更多内核,Python 多处理速度会变慢
- angular - 我想显示来自 firestore 的数据,但我收到错误 Spread types may only be created from object types
- reactjs - 如何在 const 中插入另一个 CSS 并在 reactjs 中从另一个 const 调用
- behavior - 如何使用行为更改按钮背景?
- db2 - DB for z/OS 中的递归查询