我正在开发一个阴影映射算法,想要在第一次渲染中调试生成的深度图。然而,深度纹理似乎无法正确地呈现在视口中。有没有简单的方法将深度纹理显示为灰度图像,最好不使用着色器?
您可能需要更改深度纹理参数以将其显示为灰度级:
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE )
glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE )
接着,您可以将纹理视为“普通”的灰度2D纹理,通过固定功能或“sampler2d”着色器统一使用。
深度纹理(2D)可以像任何常规灰度纹理一样使用。唯一的问题可能是其中的值都太高,只能看到白色纹理。如果是这种情况,请尝试调整创建深度纹理时使用的z-near和-far平面(或使用着色器缩放值或可能是glTexEnv)。
没问题,只需要将深度纹理绑定到您喜欢的纹理单元,启用纹理,并绘制一个2D四边形!您还可以调整四边形的大小,使其仅填充屏幕的一部分,以便实时查看阴影图。
OpenGL还具有可以为您复制纹理到数组的函数。您可以将其保存为图像并使用图像查看器查看。