Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XNA中的Z顺序实现:循环重叠?_Xna_Z Index_Overlap_Overlapping_Z Order - Fatal编程技术网

XNA中的Z顺序实现:循环重叠?

XNA中的Z顺序实现:循环重叠?,xna,z-index,overlap,overlapping,z-order,Xna,Z Index,Overlap,Overlapping,Z Order,实现z顺序系统的最佳方法是什么,其中可能出现以下情况: 有4个矩形:A、B、C和D 矩形A与矩形B重叠 矩形B与矩形C重叠 矩形C与矩形D重叠 矩形D与矩形A重叠 就像一个纸板箱。我相信这叫做循环重叠 我知道这是一个奇怪的问题,但我只是想知道……:) 纸板箱的例子是,纸板片没有完全对准摄像机。本质上,它是一个(相当平坦)的3D结构,由相互重叠的略微倾斜的平面组成。至于纸板箱,它们也不是平面的,而是略微弯曲以关闭箱子。在MS paint伪透视图中: 在3D中,可以通过倾斜平面使其重叠来实现这一点

实现z顺序系统的最佳方法是什么,其中可能出现以下情况:

有4个矩形:A、B、C和D

矩形A与矩形B重叠

矩形B与矩形C重叠

矩形C与矩形D重叠

矩形D与矩形A重叠

就像一个纸板箱。我相信这叫做循环重叠


我知道这是一个奇怪的问题,但我只是想知道……:)

纸板箱的例子是,纸板片没有完全对准摄像机。本质上,它是一个(相当平坦)的3D结构,由相互重叠的略微倾斜的平面组成。至于纸板箱,它们也不是平面的,而是略微弯曲以关闭箱子。在MS paint伪透视图中:

在3D中,可以通过倾斜平面使其重叠来实现这一点。这是一种失败的情况,并且是方便解决哪一个对象实际阻挡另一个对象的原因之一

如果您在纯2D世界中工作,并且无法倾斜平面以实现您所追求的伪3D效果,则需要细分平面并使用与方框其余部分不同的Z级别绘制重叠部分-基本上是执行您自己的剪裁

你也许可以通过做一些Z缓冲区的小把戏来模拟同样的事情,但本质上你应该使用3D结构来解决3D问题