2012-10-14 47 views
2

我嘗試了這些:如何在iOS設備上優化粒子發射器渲染FPS(在openGL中)?

  1. 製造粒子圖像變小,現在用的是8x8的一個。我只是不知道如何讓它更小,因爲我需要一個漸隱的圈子。 4x4太小

  2. 降低粒子數量,現在是40,但如果更低,則太低。

有沒有其他辦法可以讓它變得更好?

我看到很多很酷的遊戲(比如Bejewled Blitz)都有非常好的效果,看起來他們使用的是非常流暢的圖像/許多粒子。有沒有其他方法可以使FPS更好?

感謝所有贊成票和答案!這裏有一些更新:

  1. 我已經使用的cocos2d-x的OpenGL
  2. 我目前使用名爲粒設計
  3. 我測試上的iTouch 4,而其他商業軟件遊戲運行沒有任何問題。我試圖切換到其他設備,問題依然存在。
  4. 目前的FPS是25-30的粒子效應,我可以肯定地感覺到它(有點遲緩)。當屏幕上出現更多的粒子效應時,情況就更糟了(FPS可能只有10個)
  5. 我嘗試了很多方法,發現粒子元素的形狀是一個非常關鍵的瓶頸,但實際上很難縮小它。

回答

0

你可以做的第一件事就是開始使用一些支持優化粒子系統的遊戲引擎。我沒有很好的概述iOS的可用功能,但必須有一些免費和開源的引擎。例如Cocos2D有顆粒。

但是,如果選擇自己做,那麼通常減少繪製調用次數和狀態更改會使渲染速度更快。如果你有不同的紋理,你可以將它們合併成一個texture altas。這將允許您將所有粒子合併到一個頂點緩衝區並一次渲染所有粒子。

你的號碼(40個粒子)看起來非常低。你確定粒子是瓶頸嗎?通常優化渲染性能是非常困難和耗時的過程。一個人需要做很多實驗,使用不同的工具並嘗試各種方法,然後明確是什麼瓶頸以及如何使其更快。問題可能具有一般性質,並且非常具體。在另一臺設備上運行得更快的東西速度較慢。

除非您出於教育原因這樣做,否則我會強烈建議重複使用現有解決方案,並將人工年限放入其中以使其更快。我不得不說,我正在努力提供任何建議。也許精靈太大,你最大的填充率。或者對其進行着色太複雜,需要很長時間才能繪製出其中的幾個。

+0

非常感謝,我編輯了我的問題。 –

+0

@AwQiruiGuo,我更新了答案。我沒有太多想法。也許你附上截圖? – detunized

+0

非常感謝您的更新。我想知道,我是否可以用本地API而不是圖像繪製形狀? –