2017-06-11 68 views
1

因此,我遇到了一個遲緩的問題,我正在構建一款平臺遊戲。所以我正在研究如何提高性能。與地圖集文件和SpriteKit批處理繪圖的問題

我正在嘗試進行批處理繪圖,以減少繪製調用。我有問題,但。因此,一個全新的項目:

我有4個英雄精靈,所有圖像都存儲在.atlas文件夾中。所以Atlas文件夾中的每個精靈都有一個1/2/3x圖像。

我將其拖放到xcassets文件夾中。然後我去我的sks文件創建4個精靈並相應地改變紋理。

默認情況下,它們都具有相同的混合模式。我將默認規則設置爲true以忽略兄弟順序。所有精靈都在默認的z 0層上。並且我已經設置了顯示抽籤計數。

我希望看到比1次戰平,因爲所有的圖像都在同一個圖譜文件,但我看到4

有我丟失的東西?

只是好奇我怎麼得到這個正常工作。謝謝你的幫助!!!

回答

1

iOS9上的xcassets存在一個bug,即使圖像放置在xcassets中,繪製調用也不會減少。顯然這是固定的更高版本,但自那時以來,我從來沒有與xcassets困擾。相反,我將圖像放置在項目中的獨立.atlas文件夾中,這會減少繪製調用。

嘗試放置4個具有相同紋理的子畫面,然後查看繪製調用的內容。如果精靈使用相同的紋理,它不應該是4。我還建議添加8個精靈(每個4個不同的紋理* 2個精靈),並查看繪製調用是否增加到8個。

如果繪製調用不增加,那麼我會假設4個繪製調用是它需要繪製4個不同的精靈(如果它們非常複雜)。如果繪畫調用增加,請嘗試從xcassets中移除圖像,並將它們放置到項目中的單獨.atlas文件夾中,然後比較繪製調用。

+0

感謝您的意見。我已經用atlas文件夾而不是xcassets進行了測試,並且得到了相同的結果。如果我使用相同的圖像,那麼計數會下降到1.我的印象是,如果圖像在同一個圖集文件中,那麼它只需要一次繪製調用。我的圖像也不那麼複雜。 – Discoveringmypath

+0

這裏是一個Apple視頻的鏈接,討論批處理:https://developer.apple.com/videos/play/wwdc2014/608/。如果你跳到20-22分鐘,它會談論它。 – Discoveringmypath

+0

如果畫圖數量下降到1與許多精靈與相同的圖像,那麼我想它的工作正常。我的(基本的)理解是每個紋理將會有1個繪製調用。但是如果你有40個精靈和10個不同質地的精靈,繪製計數仍然只有4個,因爲同樣的紋理被重用。 – JohnV