25.1 深度图 前面说了,深度图就是深度缓冲区。 在 这一小节中,介绍了深度测试与深度缓冲区,也介绍了如何创建深度图,并Attach到FBO中。 而且在 这一小节中,就已经将深度图绘制出来了。 下面红色的就是深度图。 为什么深度图是红色的? 在Unity中,深度图看起来是灰度图,那为什么在这里是红色的呢? 对比创建颜色图和深度图的代码。 可以看到,深度图是通过 来创建的,这个是单通道的,而颜色图是通过 来创建的,这个是四通道的。 单通道就是R通道,所以绘制出来的深度图就是红色的。 绘制深度图为灰度图 如果要将单通道的Texture渲染为灰度图,可以在片段着色器中进行操作。 具体来说,可以从单通道Texture中采样像素值,然后将其复制到RGB三个通道上,代码示例如下: 一般来说,在从FBO...
25.1 深度图 前面说了,深度图就是深度缓冲区。 在 这一小节中,介绍了深度测试与深度缓冲区,也介绍了如何创建深度图,并Attach到FBO中。 而且在 这一小节中,就已经将深度图绘制出来了。 下面红色的就是深度图。 为什么深度图是红色的? 在Unity中,深度图看起来是灰度图,那为什么在这里是红色的呢? 对比创建颜色图和深度图的代码。 可以看到,深度图是通过 来创建的,这个是单通道的,而颜色图是通过 来创建的,这个是四通道的。 单通道就是R通道,所以绘制出来的深度图就是红色的。 绘制深度图为灰度图 如果要将单通道的Texture渲染为灰度图,可以在片段着色器中进行操作。 具体来说,可以从单通道Texture中采样像素值,然后将其复制到RGB三个通道上,代码示例如下: 一般来说,在从FBO中拿到DepthTexture之后,可以再创建一个FBO,将DepthTexture作为普通Texture,用正交相机再绘制一次,让其经过上面的片段着色器,就可以将深度图绘制为灰度图了。 这就是相机后处理。 不过目前还没有到这一步,所以暂时不用管这个,后面章节再说。 本小节还是借助ImGui现有功能...