XNA纹理在绘制多个广告牌时被剪切

XNA纹理在绘制多个广告牌时被剪切,xna,Xna,我正在创建一个广告牌阵列,设置动画纹理,对每个广告牌透明,然后围绕这些广告牌旋转摄影机。问题是在轨道角度的某个点上,它前面的广告牌纹理被切割,如图所示: 如何修复它 请回答,谢谢有没有可能你先画了一个更近的广告牌 如果是这样的话,那么当GPU开始绘制下一个图形时,深度缓冲区会剔除那些欠贴图的像素,因为它认为它们在后面。在那个阶段,GPU不区分透明和不透明 如果您认为这可能是您的问题,请将您的广告牌从后到前排序并按顺序绘制。在下,您不相信有人可以通过在代码输出中显示问题来修复代码,是吗?显示你的

我正在创建一个广告牌阵列,设置动画纹理,对每个广告牌透明,然后围绕这些广告牌旋转摄影机。问题是在轨道角度的某个点上,它前面的广告牌纹理被切割,如图所示:

如何修复它


请回答,谢谢

有没有可能你先画了一个更近的广告牌

如果是这样的话,那么当GPU开始绘制下一个图形时,深度缓冲区会剔除那些欠贴图的像素,因为它认为它们在后面。在那个阶段,GPU不区分透明和不透明


如果您认为这可能是您的问题,请将您的广告牌从后到前排序并按顺序绘制。在

下,您不相信有人可以通过在代码输出中显示问题来修复代码,是吗?显示你的代码!您好,我正在尝试将CullNone设置为GraphicsDevice.RasterizerState,但仍然相同,请尝试反转这些广告牌的渲染顺序,但仍然相同:(我画了4个只有X轴不同的广告牌,然后围绕广告牌旋转摄影机,同时始终平移这些广告牌矩阵,使每个广告牌始终面向摄影机。开始旋转时,一切都很顺利,直到225度之后,问题才开始出现。CullNone用于顶点着色器中的顶点,而不是pixe中的像素l着色器。在我看来,它是在像素着色器管道中剔除像素,这是一种深度缓冲操作。但是,如果您确定您首先绘制的是最远的一个,然后是第二个…等等,那么这可能不是正确的诊断。另外,请验证您的graphics.GraphicsDevice.BlendState=BlendState.AlphaBlend;