2012-08-08 56 views
1

我有一個BSP樹用於等距遊戲中的深度排序(我嘗試了無數其他方法),它似乎很接近,但在我的遊戲中,我無法拆分資產。因此,攔截當前飛機的項目,我只是將它們添加到「後面」和「前面」節點(如http://www.seas.upenn.edu/~cis568/presentations/bsp-techniques.pdf中所建議的那樣)。如何渲染一個BSP樹而不會分裂

當我遍歷樹時(從最低深度​​到最高),我只渲染一次精靈(第一次接近它),但是這似乎是在顯示順序中放置了一些精靈。

任何有關這方面的見解將不勝感激。順便說一句,這是iOS中的(主要)C語言。

在此先感謝(我試着回答這裏的一些問題,但你們都快得這麼快!)。

回答

1

我不認爲BSP樹會幫助你理清在等角拼貼渲染中普遍存在的(文字)精靈分類問題。特別是如果你有像門一樣的拱門,總會有一個角色在拱門下方/上方彈出。 BSP樹幫助快速對三維世界中的可見區域進行排序,但等軸測圖是二維分層視圖,其中諸如各個平鋪圖像的大小等其他效果比空間中的位置具有更大的因子。

最常見的解決方案實際上是爲了渲染拱門(或任何更大的等軸測對象)的各個部分,無論是在玩家的前面還是後面,取決於每個部件距相機的距離。

另一種方法是添加阻塞,以便播放器和其他對象永遠不會靠近由於排序問題導致精靈渲染失敗的區域。但是,這隻有在從一開始就內置(瓦片的大小,世界碰撞的大小)時纔有效。

+0

非常感謝您的幫助,幸運的是我沒有任何需要物體通過它們的物品。我的許多對象都需要超過1x1,我沒有奢望將它們分開。根據我的理解,真正的答案是基本上「把所有東西都比較一下」。因爲解決方案沒有絕對的方程式(例如距離原點的距離)。看起來像BSP樹是一個有效的方法。基本上,我有一堆網格x,y,寬度和高度的項目,我需要讓他們進入一個前後順序(畫家算法)。非常感謝! – ICanChange 2012-08-08 20:23:03