我正在尝试绘制场景的深度图。现在,我制作了一个 HLSL 文件,如下所示:http : //www.riemers.net/eng/Tutorials/XNA/Csharp/Series3/Shadow_map.php 一切都很顺利。然而!我想找出每个像素的确切值,所以我没有在正常的渲染目标上绘图,而是创建了一个新的渲染目标,它是一个 Texture2D,如下所示:http ://www.riemers.net/eng/Tutorials/XNA /Csharp/Series3/Render_to_texture.php 然后我使用 spritebatch 绘制它。
然后!当我显示图像时,第一个,即直接在屏幕上绘制的一个会给出以下输出:
并且使用精灵绘制到纹理然后绘制到屏幕的那个给出了这个:
请注意,在第二次捕获中,身体的右臂(显然在身体后面)被绘制成好像身体不存在于重叠区域中一样。
我认为,这是一个排序问题,因为前面的顶点首先被绘制到纹理上,然后越远的顶点覆盖越近的顶点,从而产生观察到的图像。
我会很感激任何意见。