問題タブ [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.
actionscript-3 - AIRでのフリントパーティクルの使用。Kindle Fire(20fps)とiPad 2(6fps)
これは、AS3のフリントパーティクルシステムを指します。
私はモバイル開発にAIR3.5を使用しているので、Pachinkoの例(http://flintparticles.org/examples/pachinko)をいくつかのデバイスで試しました。驚いたことに、第1世代のKindle Fire(20fps)の方が、iPad 2(わずか6fps)よりもはるかに高速です。iPad2がKindleFireに負けるのは、これほど大きな差は言うまでもなく、これが初めてです。
なぜこれが起こっているのか、そして一般的にモバイル開発にフリントを使用する際の落とし穴はありますか?他の実行可能なオプションに関するアドバイスをいただければ幸いです。
ありがとうございました。
javascript - javascriptの効率的なパーティクルシステム? (WebGL)
粒子の基本的な重力物理シミュレーションを行うプログラムを作成しようとしています。私は当初、標準の Javascript グラフィック (2D コンテキストを使用) を使用してプログラムを作成しましたが、その方法で 10000 パーティクルで約 25 fps を得ることができました。ツールを WebGL で書き直したのは、その方がより良い結果が得られるという仮定の下にあったためです。ベクトル演算には glMatrix ライブラリも使用しています。ただし、この実装では、10000 個のパーティクルで約 15 fps しか得られません。
私は現在 EECS の学部生で、ある程度のプログラミング経験はありますが、グラフィックスの経験はなく、Javascript コードを最適化する方法についてはほとんど手がかりがありません。WebGL と Javascript がどのように機能するかについて、私には理解できないことがたくさんあります。これらのテクノロジーを使用する場合、どの主要コンポーネントがパフォーマンスに影響しますか? パーティクルを管理するために使用するより効率的なデータ構造はありますか (単純な配列を使用しているだけです)。WebGL を使用した場合のパフォーマンスの低下について、どのような説明が考えられますか? GPU と Javascript の間の遅延でしょうか?
一般的な提案、説明、またはヘルプをいただければ幸いです。
参照用にコードの重要な領域のみを含めるようにします。
ここに私のセットアップコードがあります:
描画ループ:
Square が継承するクラスは次のとおりです。
これらは私が使用しているシェーダーです:
長々と失礼いたしました。繰り返しになりますが、正しい方向への提案や微調整は非常に大きなものになります。
iphone - テクスチャからのパーティクルシステムがロードされない
テクスチャにパーティクルをロードするパーティクルシステムを使用しようとしています。単なる練習なので、「手動で」テクスチャを生成するのは問題ありません。したがって、この場合、データのバッファを割り当てて、それを赤色(RGBA 32ビット形式)で塗りつぶします。
しかし、問題は、プログラムの実行が開始されたときに、黒い画面が表示されるだけで、期待したものが表示されないことです(いくつかの赤い粒子が移動します)。
コメントで私がやろうとしていることを説明します:
画像を使用する
手動で作成したテクスチャの代わりにUIImageを使用する方法でコードを変更しようとしました。
アプリバンドルの画像「fire.png」は次のとおりです。
他のいくつかのプロパティも設定しましたが、それでも機能しません:黒い画面。
nullpointerexception - LIBGDX でパーティクル エフェクトのファイルを読み込もうとすると NullPointerException が発生する
パーティクル エフェクトのファイルを読み込もうとすると、NullPointerException が発生します。
そして、ここにスタックトレースがあります:
なぜ何か提案はありますか?
アップデート:
Androidで実行しようとしましたが、動作しますが、次のような結果が得られます:
しかし、電話の画面をオフにしてから再びオンにすると、次のようになります。
この更新は最初のコメントに返信されると思います。
1) デスクトップの問題が解決されていない 2) アプリの起動時にパーティクル イメージが正しく表示されないという新しい問題...
cuda - CUDA C / C ++:ポイントあたりの距離の逆数の平均を計算します(相互作用エネルギー、おそらく?)
N上のN個のポイント間の距離の逆数の合計を計算するカーネルを作成しようとしています。Cのシリアルコーダは次のようになります。
ここで、rxとryはそれぞれx座標とy座標です。
乱数ジェネレーターを使用するカーネルを介してポイントを生成します。カーネルの場合、4k(8k)ポイントでブロックあたり128(256)スレッドを使用しました。その上で、すべてのスレッドが内側の上の内側のループを実行し、次のように結果がreducesum関数に渡されます。
ポイントの生成:
割引:
カーネル:
カーネルは次のように構成および起動されます。
最後に、データをホストにコピーして戻し、残りの合計を実行します。
4kポイントの場合、OK!結果は次のとおりです。
この場合、合計が異なる順序で実行され、両方の結果が互いに異なる可能性があります、私にはわかりません...
しかし、8kになると、結果はまったく異なります。
私には、カーネルとシリアルコードの両方が同じように書かれているように見えます。浮動小数点数のCUDA計算の精度に不信感を抱く原因は何ですか。これは意味がありますか?または、一部のスレッドがXとYから同時に同じデータをロードすると、グローバルメモリへのアクセスによって競合が発生しますか?または、私がカーネルを書いた方法が何らかの形で「間違っている」(つまり、両方の結果が互いに異なる原因になっていることをしているのでしょうか?)。
cuda - CUDA C/C++: 同じ実行可能ファイルでも最初の実行とは異なる結果が得られる
私の以前の回答済みの質問: My Previous Questionを見てください。ちなみに、これはRobert Crovellaによって適切に回答されました。
ポイントへのランダムなステップを計算し (前の質問と同じ RNG を使用して)、そのポイントの以前の位置 (座標) に対するエネルギーの差を計算する別のカーネルを思いつきました。これはカーネルです:
次に、CPU で最終的な合計を計算します。
私のカーネルは、次の構成で起動されます。
ここで、Np はポイントの数です (私は 1k - 4k を使用しました)。私は GeForce 9500 GT を持っていますが、これは倍増をサポートしていません。そして、フラグなし/オプションなしを使用してコンパイルします。
たとえば、Np = 1k を取ります。コンパイルして実行すると、結果は dE = 6.557993 になります。2 回目、3 回目、4 回目、いつ実行しても、dE = -0.3515406 です。これがどこから来たのか誰か知っていますか?
PS: 言い忘れましたが、前の質問にあるのと同じカーネル AvgDistance が DeltaE の直前に呼び出されます。これが何か関係があるかどうかはわかりませんが、言及する価値があると思いました。
PS2: nn は任意の選択されたポイント (粒子) です。
opengl - 雲または煙のパーティクル システム
OpenGL と CUDA を使用して、雲と煙のシミュレーション用の単純なパーティクル システムを作成しようとしています。
パーティクル システム内のパーティクルを実際の雲や煙が乱気流の弱い風で振る舞うようにするにはどうすればよいですか?
私が今抱えているいくつかの問題は次のとおりです。
- パーティクルが大きなボールにまとまる
- 粒子は無限に広がる
- パーティクルは突然パチンコで飛び去りました。
パーティクルのレンダリングはすでに行っているので、その点では満足しています。
three.js - パーティクルシステムでシェーダーマテリアルを使用できますか?
達成しようとしているのは、各パーティクルのマテリアルとして異なるピクセル データを配置することです。これは私の一連の考え方です。キャンバスを PlaneGeometry のテクスチャとして設定し、フラグメント シェーダーを介して PlaneGeometry からデータのピクセル チャンクを取得し、異なるチャンクを配置します。パーティクル システムのフラグメント シェーダを使用して必要なパーティクルのピクセル データを取得することは可能ですか?
c++ - Cocos2d/Cocos2d-x パーティクル システムの一時停止
既存の一時停止、再開、再起動フレームワークにパーティクル エミッターを実装する方法について質問があります。
現在、次のコードを含む一時停止メソッドがあります。
また、次のように作成されたパーティクル エミッターもあります。
問題のパーティクル エミッターには持続時間が関連付けられており、たとえば 2 秒とします。現時点では、pause メソッドでパーティクル システムをフリーズして、一時停止を解除したときにパーティクル エミッターが中断したところから継続するようにしたいと考えています。
私が今直面している問題は、一時停止するとパーティクル エミッターが継続することです。「pauseSchedulerAndActions()」メソッドは、独自のスケジューラを持っていることを理解しているパーティクル エミッタから分離されています。
何を試しても、パーティクル エミッタが p_emitter.setDuration() メソッドで設定された時間だけ移動し続けるのを止めることはできません。
パーティクル エミッターがまだ持続時間に達していないときに一時停止すると、一時停止を解除するまでに持続時間が終了し、このフラグを設定したために削除されてしまうため、これは問題です。
エミッタを作成するとき。また、エミッターが実際に一時停止することはないため、ゲームが実際に一時停止していないような印象を与えます。
私の質問は、一時停止を解除したときにエミッタが再開できるように、パーティクルエミッタを完全にフリーズするにはどうすればよいですか?