为此搜索了很多,阅读了这篇非常有用的文章,但仍然想知道我的项目的解决方案。此屏幕截图完美地说明了我的问题:
有 2 个对象:红色对象由 2 个四边形组成,一个 z-index 为 -1,另一个 z-index 为 1。两个四边形都有Color.Red * 0.5f
. 首先被绘制。另一个对象是 z-index 为 0 的玩家。第二个被绘制
因为我希望玩家在四边形之间移动,所以我设置DepthStencilState
了, DepthStencilState.Default;
但这提供了以下图像。玩家的像素会被忽略,因为它前面有一个物体。
我基于这个类将我所有的图元批处理到一个大的 DrawUserPrimitive 中。这个问题的最佳解决方案是什么?我是否必须根据 z-index 对三角形进行排序(我该怎么做;它很贵吗?)还是有其他解决方案?