【问题标题】:Z-order implementation in XNA: cyclic overlapping?XNA 中的 Z 顺序实现:循环重叠?
【发布时间】:2012-09-13 08:32:03
【问题描述】:

实现 z 顺序系统的最佳方法是什么,可以实现以下操作:

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

矩形 A 与矩形 B 重叠。

矩形 B 与矩形 C 重叠。

矩形 C 与矩形 D 重叠。

矩形 D 与矩形 A 重叠。

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

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

【问题讨论】:

    标签: xna z-index overlap overlapping z-order


    【解决方案1】:

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

    这可以通过倾斜平面使它们重叠在 3D 中实现。这是painters algorithm 失败的情况,也是Z buffer 派上用场解决哪个对象实际遮挡另一个对象的原因之一。

    如果您在纯 2D 世界中工作,并且无法通过倾斜平面来获​​得伪 3D 效果,那么您需要细分平面并使用不同的 Z 水平绘制重叠部分用于盒子的其余部分 - 基本上是在做你自己的剪裁。

    您也可以通过某种 Z 缓冲区技巧来模拟同样的事情,但本质上您应该使用 3D 结构来解决 3D 问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多