次のような 3D ゲームに単純な稲妻効果を実装しています。
http://www.krazydad.com/bestiary/bestiary_lightning.html
私はopengl ES 2.0を使用しています。電気ボルトを構成する線は、どの角度から見ても「ソリッド」に見える必要があるため、これを 3D 環境でレンダリングするための最も見栄えがよく、最もパフォーマンス効率の高い方法は何かを考えています。
線の太さの効果を作成するために、X クロスで線分ごとに 2 つの平面を生成することを考えていました。何らかの種類のオフの加算ブレンディング モードを使用して、深度バッファーの書き込みを無効にすることによるレンダリング。アルファチャンネルを備えた電気的なテクスチャを使用して、各線分をテクスチャリングします。
ただし、この方法を使用して必要な三角形リストを生成することによるパフォーマンスの低下について少し心配しています。私のゲームでは、同時に多数の稲妻が生成される可能性があるためです。しかし、稲妻の長さと太さは大きく異なるため、引き伸ばされて正しい位置を指している稲妻のアニメーション 3D オブジェクトを単純に使用するのは見栄えがよくないと思います。これが最初のアイデアでした。
後処理パスで投影された終点間の 2D 線を使用して稲妻をレンダリングする別のアプローチを考えていました。私の場合の遠近効果は無視できるので、それはうまくいくはずです。
ここで最善のアプローチに関する良いアイデアはありますか?
編集: nVidia からこのホワイト ペーパーを見つけました。
http://developer.download.nvidia.com/SDK/10/direct3d/Source/Lightning/doc/lightning_doc.pdf
これは、線分ごとにビルボードを配置するアプローチを使用し、フィルタリングを適用して、各ビルボードから生じるギャップとオーバーラップを滑らかにします。
かなり良い視覚的結果が得られるようですが、追加のフィルタリング パスについてはあまり満足していません。このゲームは携帯電話向けであり、そのようなステップにはかなりのコストがかかります。そして、結局のところ、モバイル デバイスでは遅い行列計算のオーバーヘッドが追加されるため、ビルボーディングは CPU の負荷もかなり高くなります。