3

我正在研究阴影映射算法,我想调试它在第一次通过时生成的深度图。但是,深度纹理似乎无法正确渲染到视口。是否有任何简单的方法可以将深度纹理显示为灰度图像,最好不使用着色器?

4

3 回答 3

8

您可能需要更改深度纹理参数以将其显示为灰度级别:

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE )
glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE )

然后,您通常可以通过固定函数或“sampler2d”着色器制服将纹理用作“普通”灰度 2d 纹理。

于 2011-05-20T17:16:01.627 回答
2

深度纹理 (2D) 可以像任何常规灰度纹理一样使用。唯一的问题可能是它里面的值太高了,你只能看到一个白色的纹理。如果是这种情况,请使用创建深度纹理时使用的 z-near 和 -far 平面(或使用着色器或 glTexEnv 缩放值)。

于 2009-03-26T08:54:51.997 回答
0

当然,只需将您的深度纹理绑定到您最喜欢的纹理单元,启用纹理,然后绘制一个 2D 四边形!您还可以调整四边形的大小以仅填充屏幕的一部分,以便您可以实时查看阴影贴图。

OpenGL 还具有可以为您将纹理复制到数组中的功能。您可以将其保存为图像并使用图像查看器查看它。

于 2011-05-20T16:43:05.573 回答