Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
Objective c 如何在不拆分的情况下渲染BSP树_Objective C_C_Algorithm_Cocos2d Iphone_Bsp Tree - Fatal编程技术网

Objective c 如何在不拆分的情况下渲染BSP树

Objective c 如何在不拆分的情况下渲染BSP树,objective-c,c,algorithm,cocos2d-iphone,bsp-tree,Objective C,C,Algorithm,Cocos2d Iphone,Bsp Tree,我有一个BSP树用于等距游戏中的深度排序(我尝试了无数其他方法),它看起来很接近,但在我的游戏中,我无法分割资产。因此,对于截取当前平面的项目,我只需将它们添加到“后面”和“前面”节点(如中所建议) 当我遍历树时(从最低深度到最高深度),我只渲染精灵一次(第一次接近它),但这似乎将一些精灵的显示顺序放得太低了 对此有任何见解都将不胜感激。顺便说一句,这是iOS的C语言版本(大部分) 提前感谢(我尝试在这里回答一些问题,但你们都太快了!)。我不认为BSP树可以帮助您解决等距图块渲染中普遍存在的(文

我有一个BSP树用于等距游戏中的深度排序(我尝试了无数其他方法),它看起来很接近,但在我的游戏中,我无法分割资产。因此,对于截取当前平面的项目,我只需将它们添加到“后面”和“前面”节点(如中所建议)

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

对此有任何见解都将不胜感激。顺便说一句,这是iOS的C语言版本(大部分)


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

我不认为BSP树可以帮助您解决等距图块渲染中普遍存在的(文字)精灵排序问题。特别是如果你有像门一样的拱门,角色总是会在拱门下方/上方弹出。BSP树有助于快速对3D世界中的可见区域进行排序,但等轴测地图是一种二维分层视图,其中其他效果(如单个瓷砖图像的大小)所起的作用大于空间中的位置

事实上,最常见的解决方案是分割资源,以便根据每个部分到摄影机的距离,在播放器前面或后面渲染拱门的各个部分(或任何较大的等轴测对象)


另一种方法是添加块,这样播放器和其他对象就永远不会太靠近精灵渲染通常由于排序问题而失败的区域。但是,只有当它从一开始就内置(平铺大小、世界碰撞大小)时,它才起作用。

我认为BSP树不能帮助您解决等距平铺渲染中普遍存在的(文字)精灵排序问题。特别是如果你有像门一样的拱门,角色总是会在拱门下方/上方弹出。BSP树有助于快速对3D世界中的可见区域进行排序,但等轴测地图是一种二维分层视图,其中其他效果(如单个瓷砖图像的大小)所起的作用大于空间中的位置

事实上,最常见的解决方案是分割资源,以便根据每个部分到摄影机的距离,在播放器前面或后面渲染拱门的各个部分(或任何较大的等轴测对象)


另一种方法是添加块,这样播放器和其他对象就永远不会太靠近精灵渲染通常由于排序问题而失败的区域。但这只适用于从一开始就内置的情况(瓷砖大小、世界碰撞大小)。

非常感谢您的帮助,幸运的是,我没有任何物品需要物体从下面通过。我的许多对象都超过1x1,我没有拆分它们的奢侈。据我所知,真正的答案基本上是“将一切与一切进行比较”,因为解决方案没有绝对方程式(例如,与原点的距离)。BSP树似乎是一种有效的方法。基本上,我有一个网格x,y,宽度和高度的项目,我需要把它们从后到前的顺序(画家算法)。非常感谢!非常感谢您的帮助,幸运的是,我没有任何物品需要物体从下面通过。我的许多对象都超过1x1,我没有拆分它们的奢侈。据我所知,真正的答案基本上是“将一切与一切进行比较”,因为解决方案没有绝对方程式(例如,与原点的距离)。BSP树似乎是一种有效的方法。基本上,我有一个网格x,y,宽度和高度的项目,我需要把它们从后到前的顺序(画家算法)。非常感谢!