問題タブ [particle-engine]
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.
xna - XNA - 同時に多数のパーティクルを作成する
別の XNA の質問の時間です。今回は純粋に技術的な設計の観点からです。
私の状況は次のとおりです。GPU 計算に基づいてパーティクル エンジンを作成しましたが、完全にはほど遠いですが、動作します。私の GPU は 10,000 個のパーティクルを苦労せずに簡単に処理できるので、さらに多くのパーティクルを追加できても驚かないでしょう。
私の問題:同時に多数のパーティクルを作成すると、フレーム レートが低下します。なんで?ほとんどメモリ操作のみを含むように最小限に抑えましたが、大量の CPU 使用率。
パーティクルの作成は、次のような CPU 呼び出しによって引き続き行われます。
- メソッドはパーティクルを作成し、呼び出しを行います。
- クワッドは頂点の形で作成され、バッファに格納されます
- バッファが GPU に挿入され、CPU は他のことに集中できる
フレームごとに 1 つのパーティクルを作成する約 4 つのエミッターがある場合、FPS が低下します (確かに、1 秒あたり 4 フレームしかありませんが、15 個のエミッターでは FPS が 25 に低下します)。
パーティクルの作成:
私の考えでは、パーティクルをそれほど頻繁に作成するべきではないかもしれません。GPU にすべてを作成させる方法があるかもしれません。または、これらの作業をどのように行うかを知らないだけかもしれません。;)
編集: パーティクルをそれほど頻繁に作成しない場合、見栄えを良くするための回避策は何ですか?
したがって、良いパーティクル エンジンをどのように設計する必要があるか、また、どこかで間違ったルートをたどった可能性があるかどうかを知っていただくために、ここに投稿しています。
xna - XNA - 跳ねるボールにパーティクル エンジン/エミッタを配置する方法は?
マウスの位置にエミッターを作成するパーティクル エンジンがあります。
これは、Game1.cs の Update メソッドにあります。
跳ねる物理と Texture2D テクスチャを備えた Ball.cs という別のクラスがあります。Vector2 の位置。
代わりに、エミッタ/パーティクルをボールに追従させるにはどうすればよいですか?
cocos2d-x - 空の ParticleSystem を作成し、その上に CCNode のように子particlesystemquad を追加するにはどうすればよいですか?
cocos2d-x 3.0 alpha を使用してゲームを作成しています。空の ParticleSystem オブジェクト (ルート A) を作成し、その上に多数の ParticleSystemQuads を子として追加します。ルートAだけを変更するだけで、位置やスケールなどを変更できます。
だから私はルートParticleSystemのようにしました
エラーはありませんが、plistファイル名を入れていないためクラッシュします。私はplistファイル名でテストし、それは機能しますが、それを行うには任意のファイルを配置する必要がありました(もちろん、ルートAパーティクルを画面の外に移動するようなトリックを行うことができます)。
CCNode のように空の ParticleSystem onject を作成するにはどうすればよいですか? CCNode を使用することもできますが、ParticleSystem クラスにある stopSystem() および resetSystem() メソッドを使用したいと考えています。それが理由です。