問題タブ [particle-system]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1382 参照

ios - iOS パーティクル システム ライブラリはありますか

iOS用の(オープンソースがいい)パーティクル/エミッターライブラリを知っている人はいますか?cocos iphone は知っていますが、他には見つかりませんでした。

他のすべてが失敗した場合、私は手を汚してOpenGLを学びますが、ヘルパーライブラリは便利です:)

0 投票する
1 に答える
376 参照

iphone - パーティクルファイル (.plist) をリアルタイムで調整

私が取り組んでいる cocos2 プロジェクトがあり、パーティクル システムの .plist ファイルの変数をリアルタイムで調整する方法があるかどうか疑問に思っています。つまり、プレーヤーの速度などと相関するように x 重力を調整します。最初にファイルを作成するためにパーティクル デザイナーを使用しています。

提案や方向性は大歓迎です。

0 投票する
2 に答える
3736 参照

objective-c - ゲームの速度を落とさずに、iPhone OpenGL ESパーティクルシステムで1000以上のパーティクル(独自の回転、スケール、アルファ付き)を描画するにはどうすればよいですか?

OpenGLES1.1を使用してiPhone用のゲームを開発しています。このゲームでは、キャラクターが撃たれたときにキャラクターから放出される血液粒子があるため、画面には一度に1000以上の血液粒子が表示される可能性があります。問題は、レンダリングするパーティクルが500を超えると、ゲームのフレームレートが大幅に低下することです。

現在、各パーティクルはglDrawArrays(..)を使用してレンダリングされますが、これが速度低下の原因であることがわかります。すべてのパーティクルは同じテクスチャアトラスを共有します。

では、多くのパーティクルを描画することによる速度低下を減らすための最良のオプションは何ですか?私が見つけたオプションは次のとおりです。

  1. すべての血液粒子をグループ化し、単一のglDrawArrays(..)呼び出しを使用してレンダリングします。このメソッドを使用する場合、各粒子に独自の回転とアルファを持たせる方法はありますか?または、この方法を使用する場合、それらすべてが同じ回転を持つ必要がありますか?独自の回転でパーティクルをレンダリングできない場合、このオプションを使用できません。
  2. OpenGLES2.0でポイントスプライトを使用します。 私はまだOpenGLES2.0を使用していませんが、AppStoreでゲームをリリースするために設定した期限に間に合わせる必要があります。OpenGL ESを使用するには、予備調査が必要になりますが、残念ながら実行する時間がありません。後のリリースでOpenGLES2.0にアップグレードしますが、最初は1.1のみを使用します。

これが各パーティクルのレンダリングです。これは私のオリジナルのパーティクルレンダリング方法であり、500以上のパーティクルがレンダリングされた後、ゲームでフレームレートが大幅に低下しました。

次に、方法1を使用しましたが、この方法(私が知っている)を使用して、パーティクルに一意の回転、スケール、またはアルファを設定することはできません。

質問を繰り返します。
フレームレートが大幅に低下することなく1000以上のパーティクルをレンダリングし、各パーティクルが固有の回転、アルファ、およびスケールを持つことができるようにするにはどうすればよいですか?

建設的なアドバイスは本当に役に立ち、大いに感謝されます!

ありがとう!

0 投票する
2 に答える
3563 参照

c++ - 2D パーティクル システム - パフォーマンス

「Bulding an Advanced Particle System」(John van der Burg 著、Game Developer Magazine、2000 年 3 月) で概説されているアイデアと概念に基づいて、2D パーティクル システムを実装しました。

今、私はこのシステムにどのようなパフォーマンスを期待すべきか疑問に思っています. 私は現在、すべてのパーティクルがフレームごとに更新される単純な (未完成の) SDL/OpenGL プラットフォーマーのコンテキスト内でテストしています。描画は次のように行われます

1 つのテクスチャがすべてのパーティクルに使用されます。

3000粒程度まではスムーズに動きます。正直なところ、特にこれは画面上の複数のシステムで使用することを意図しているため、もっと多くのことを期待していました. スムーズに表示されるパーティクルの数はいくつですか?

PS: 私は C++ と OpenGL も同様に比較的新しいので、どこかでめちゃくちゃになったのかもしれません!?

使用して編集POINT_SPRITE

使うのと性能差が全然わからないGL_QUADS!?

使用して編集VERTEX_ARRAY

VA を使用すると、上記のパフォーマンスに違いが生じました。その後、VBO を試してみましたが、実際にはパフォーマンスの違いは見られませんか?

0 投票する
0 に答える
381 参照

dynamic - SPH を使用した流体-固体相互作用のモデル化

私はここでは初心者なので、私の質問が奇妙に思えたら申し訳ありません。これは、流体と固体の相互作用をまだ処理できない私の SPH シミュレータに関するものです。私のシミュレーターは流体をうまくシミュレートできますが、シミュレーション中に固体オブジェクトを追加したいときに混乱しました。

私は多くの論文を読んで、いくつかの結論を思いつきました。間違っていたら訂正してください。

  1. 固体と流体の両方のオブジェクトは単一粒子システムでモデル化されており、各オブジェクト粒子は、質量、質量密度、人工粘度などの独自のパラメーター値を持っています。
  2. 各タイム ステップで、両方のオブジェクトで通常どおり SPH ループ プロシージャが計算されます。これは、粒子の種類に関係なく、半径 h 内にある場合、各粒子オブジェクトが別の粒子オブジェクトに寄与できることを意味します。
  3. 流体粒子のみを含む系との違いは、流体-固体系であり、固体間でのみ計算される弾性力が存在します。このフォースは、流体パーティクルに対しては計算されません。

あれは。最後に質問です。

平滑化の長さ、粒子の半径などの SPH 固有のパラメータはどうですか? 各粒子の力を計算するとき、これらは固体と流体で異なりますか? 両方の種類の粒子の力を計算するとき、実際に正しい方法は何ですか? シングルループで計算するだけですか?

私が読んだ論文には式が書かれていますが、まず基本的な考え方が必要だと思います。

ありがとう。

0 投票する
1 に答える
2502 参照

opengl-es - パーティクル システムの GLSL PointSprite

PointSprites (Cocos2D ソースに触発された) で ParticleSystem を使用しています。しかし、OpenGL ES 2.0 の機能をどのように再構築するのだろうか

これらは、OpenGL ES 2.0 コンテキストを使用すると BAD_ACCESS を生成します。PointSprite ごとに 2 つの TRIANGLES を使用する必要がありますか? しかし、それはおそらくあまり効率的ではありません (余分な頂点のオーバーヘッド)。

編集:だから、提案された解決策に関する私の新しい問題: https://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528

バッチ呼び出しでさまざまなサイズを渡す可能性があります。Uniform の代わりに Attribute を使用することを考えましたが、GL_POINTS を描画していなくても、常に PointSize をシェーダーに渡す必要があります。では、おそらく 2 番目のシェーダー (GL_POINTS のみのシェーダー) でしょうか?! 描画ルーチンのフレームごとにシェーダーを切り替えるためのオーバーヘッドを認識していません (パーティクル システムが使用されている場合は、pointSize なしで通常の GL_TRIANGLES も当然レンダリングしたいため)...これに関するアイデアはありますか?

0 投票する
2 に答える
1764 参照

iphone - Cocos2D-iPhone で CCParticleSystem を一時停止/再開するには?

現在、Cocos2D でゲームを作成していますが、最適化するためにいくつかのパーティクル システムを一時停止/再開する必要があります。

これどうやってするの?

[particleSystem unscheduleUpdate] と [particleSystem scheduleUpdate] を使用できることは承知していますが、更新が既にスケジュールされているかどうかを確認するにはどうすればよいですか?

画面外にあるすべてのパーティクル システムを一時停止し、ビューに戻ったら再開したいので、ビューポートを移動するときにパーティクル システムをループします。

システムが更新されているかどうかを確認するためのフラグが、particleSystem.active から得られないようです...

ここで何が欠けていますか?

0 投票する
1 に答える
1082 参照

visual-c++ - OpenGL サンプル パーティクル シミュレーションでパーティクルが表示されない

このソースから噴水の簡単なパーティクル シミュレーションを作成しました。また、C++ クラスを使用してこれを実装したいと考えていました。そこで、上記のロジック部分をこのソースのクラスに入れてみました(これは非常に優れたフレームワークです)。クラスを継承し、必要な機能を再定義するだけです。

display()my を呼び出す関数を定義しましたDrawObjects()。次の問題が発生しています。

  1. パーティクルの数を 50、100、または 500 に初期化しています。何も表示されません。
  2. BMPパーティクルの texture( ) をロードしようとしています。何らかの理由で失敗しています。相対パスと絶対パスの両方を試しました。RAW次に、テクスチャを(を使用して)ロードしようとしましたIrfanViewerが、うまくいきませんでした。また、テクスチャ コードを削除して、単純な OpenGL プリミティブにすることも試みました。再び運が悪い。
  3. 実際にシアン色の軸を赤色DrawAxis()の文字列で描画する必要がある単純な関数を作成しました。ただし、灰色のプリミティブが表示されています。構成の使用法についてコードを確認しましたが、そのようなことはありませんでした。grayscale

注: Windows VC++ 2010 で作業しています。コードは にありますNippyZip

最小限のコード

メイン.cpp

GlutFramework.cpp

ParticleSimulation.h

ParticleSimulation.cpp

0 投票する
1 に答える
1141 参照

xna-4.0 - パーティクル システム: XNA Framework HiDef プロファイルは、Vector4 テクスチャでのアルファ ブレンディングをサポートしていません

XNA でのパーティクル システムの作成に関する素晴らしいチュートリアルを見つけました: http://www.catalinzima.com/tutorials/4-uses-of-vtf/particle-systems/

問題は、xna と xna 4.0 の古いバージョン用に書かれていることです。

DoPhysicsPass メソッドでは、次の例外が発生します。

XNA Framework HiDef プロファイルは、rendertarget 形式 Vector4 を使用する場合、アルファ ブレンディングまたは ColorWriteChannels をサポートしません。

これが爆発している方法です

randomTexture の初期化は次のとおりです。

誰でもこれを修正する方法を提案できますか?

0 投票する
1 に答える
1418 参照

performance - CAEmitterLayer (ios5) と CCParticleSystem (cocos2d) のパフォーマンスの比較

私はたくさんの粒子効果を持つアプリを作成する予定で、cocos2d フレームワークを使用する予定でした。しかしつい最近、ios5でパーティクルシステムが作れることを知りました。

cocos2d 粒子システムと比較した場合、UIKit 粒子システムがどのように機能するかを知りたいです。

試してテストした人はいますか?