1

我有一个用于在等距游戏中进行深度排序的 BSP 树(我尝试了无数其他方法),它似乎很接近,但在我的游戏中我无法拆分资产。因此,拦截当前平面的项目,我只需将它们添加到“后面”和“前面”节点(如http://www.seas.upenn.edu/~cis568/presentations/bsp-techniques.pdf中所建议的) )。

当我遍历树(从最低深度​​到最高深度)时,我只渲染一次精灵(我第一次接近它),但这似乎将一些精灵在显示顺序中放置得太低。

对此的任何见解将不胜感激。顺便说一句,这是在(主要是)C for iOS 中。

提前谢谢(我试着在这里回答一些问题,但你们都太快了!)。

4

1 回答 1

1

我认为 BSP 树不会帮助您解决等距平铺渲染中普遍存在的(字面)精灵排序问题。特别是如果你有像门这样的拱门,总会有一个点,角色会突然出现在拱门的下方/上方。BSP 树有助于快速对 3D 世界中的可见区域进行分类,但等轴测图是 2 维分层视图,其中单个平铺图像的大小等其他效果比空间中的位置发挥更大的影响。

事实上,最常见的解决方案是拆分资产,以便根据每个部分到相机的距离,在玩家前面或后面渲染拱门(或任何更大的等距对象)的各个部分。

另一种方法是添加阻挡,以便玩家和其他对象永远不会太靠近精灵渲染通常由于排序问题而失败的区域。但这只有从一开始就内置(瓷砖的大小,世界碰撞的大小)才有效。

于 2012-08-08T12:30:36.547 回答