libgdx バージョン 0.9.9 を使用しています。他の 3D モデルと一緒に 3D 空間で ParticleEffect を使用して火の効果をレンダリングしたいと考えています。
私のコードの論理フロー:
- ModelBatch開始
- ModelBatch を使用して Bullet World のすべての 3D モデルをレンダリングする
- モデルバッチ終了
- SpriteBatch開始
- SpriteBatch を使用して ParticleEffect (effect.draw) を使用して火のエフェクトをレンダリングします。
- SpriteBatch終了
- ステージを使用して HUD を描画する
問題: 3D 空間のある点で火の効果がうまくレンダリングされます。しかし、3D モデルがカメラと火の効果の間にあるようにカメラを回転させると、火の効果が 3D モデルの後ろに隠れるのではなく、3D モデルの上にレンダリングされます。
私が試したこと:
- 最初に SpriteBatch をレンダリングしてから 3D モデルをレンダリングしようとしました。この場合、火の効果は表示されません。3D モデル (レイヤー) が火の効果 (レイヤー) の上にレンダリングされているため、効果が表示されていないと推測しています。
- ステップ 1 と 3 の間で SpriteBatch をレンダリングしてみました。つまり、modelbatch.begin と modelbatch.end の間で SpriteBatch をレンダリングしました。この場合、火の効果はまったく見えません。
- Particle Effect をアクタ (HUD ステージに追加) としてレンダリングしてみました。予想どおり、火のエフェクトは最上位の HUD レイヤーの一部としてレンダリングされ、同じ問題が残ります。
- デカールを調べてみましたが、パーティクル エフェクトが DebcalBatch で機能しないことがわかりました。アニメーション化された火の .gif をデカールの上に表示したくなかったので、試しませんでした。
誰かが同様の問題に直面しましたか?ParticleEffect を 3D ワールドの一部として動作させ、他の 3D モデルによってブロックされたときに非表示になるようにするための推奨される回避策はありますか? Xoppa が YouTube に投稿した、libgdx の 3D パーティクルに関するビデオを見たことがありますが、言及されている手順や解決策はありません。どんな助けでも大歓迎です。