2

私はこれらを試しました:

  1. パーティクル イメージを小さくし、8x8 のイメージを使用します。フェードサークルが必要なので、さらに小さくする方法がわかりません。4x4は小さすぎる

  2. パーティクルの数を減らしてください。現在は 40 ですが、さらに低くすると低すぎます。

それをより良くするために私ができる他の方法はありますか?

多くのクールなゲーム (Bejewled Blitz など) には非常に優れたエフェクトがあり、非常に滑らかな画像や多くのパーティクルを使用しているようです。FPSをより良くする方法はありますか?

親切な賛成票と回答をありがとう!ここにいくつかの更新があります:

  1. すでにOpenGLでcocos2d-xを使用しています
  2. 現在、 Particle Designerという商用ソフトウェアを使用しています。
  3. iTouch 4 でテストしていますが、他のすべてのゲームは問題なく動作しています。他のデバイスに切り替えようとしましたが、問題は解決しません。
  4. 現在の FPS はパーティクル効果で 25 ~ 30 で、確かにそれを感じることができます (少しラグがあります)。画面にパーティクル エフェクトが多く表示されると、さらに悪化します (FPS は 10 しかありません)。
  5. いろいろ試してみたところ、粒子要素の形状が非常に重要なボトルネックであることがわかりましたが、それを小さくするのは非常に困難です。
4

1 に答える 1

0

最初にできることは、最適化されたパーティクル システムをサポートするゲーム エンジンの使用を開始することです。iOS で何が利用できるかについてはよくわかりませんが、無料でオープンソースのエンジンがいくつかあるはずです。たとえば、Cocos2Dにはパーティクルがあります。

しかし、それを自分で行うことを選択した場合は、通常、描画呼び出しと状態変更の数を減らすと、レンダリングが高速になります。異なるテクスチャがある場合は、それらをテクスチャ altasにマージできます。これにより、すべてのパーティクルを 1 つの頂点バッファーにマージし、一度にすべてをレンダリングできます。

あなたの数 (40 粒子) は非常に低いようです。パーティクルがボトルネックであると確信していますか? 通常、レンダリング パフォーマンスの最適化は、非常に困難で時間のかかるプロセスです。ボトルネックが何か、それを高速化する方法が明らかになる前に、多くの実験を行い、さまざまなツールを使用し、さまざまなアプローチを試す必要があります。問題は一般的な性質のものである場合もあれば、ハードウェア固有のものである場合もあります。あるデバイスでより速く動作するものは、別のデバイスでは遅くなります。

教育上の理由でそうしない限り、既存のソリューションを再利用して、工数をかけて高速化することを強くお勧めします。

更新:あなたの編集を見て、私は何か提案を提供するのに苦労していると言わざるを得ません. スプライトが大きすぎて、フィルレートを最大にしてしまう可能性があります。または、それらのシェーダーが複雑すぎて、それらのいくつかを描画するのに長い時間がかかります。

于 2012-10-14T07:32:22.670 に答える