私は現在、XNAの2Dワームクローンに取り組んでおり、機能の1つは「変形可能な」地形です(たとえば、ロケットが地形に衝突すると、爆発が起こり、地形のチャンクが消えます)。
私が現在これを行っている方法は、中心に近づくにつれて赤の値が徐々に高くなるテクスチャを使用することです。その「変形」テクスチャのすべてのピクセルを循環し、現在のピクセルが地形ピクセルと重なり、十分に高い赤の値を持っている場合は、地形を表すカラー配列を透明に変更します。現在のピクセルの赤の値が十分に高くない場合は、地形の色を黒くします(赤の値がしきい値に近づくほど黒くなります)。この操作の最後に、SetDataを使用して地形テクスチャを更新します。
これは、パイプラインの停止などについて読んだだけでなく、同時に多くのクレーターが追加されている場合にかなり遅延する可能性があるため、これを行うには良い方法ではないことに気づきました。ターゲットになることと変更するテクスチャとの間でレンダーターゲットの「ピンポン」を使用する代わりに、GPUでクレーター生成を作り直したいと思います。それは問題ではありません、私はそれを行う方法を知っています。問題は、この方法で火傷効果を維持する方法がわからないことです。
現在、焼き付け効果は次のようになります。
誰も私が同様の火傷効果を作成する方法を考えていますか(形成されたクレーターの周りのエッジを暗くします)?私はシェーダーに完全に不慣れですが、それが必要な場合は、誰かが私にその方法を説明してくれれば本当に感謝します。他にも素晴らしい方法があれば。