2010-11-18 12 views
0

BlitzMaxに輝くラインエフェクトを作りたいと思っています。これは、スターウォーズのライトセーバーやレーザービームのようなものです。リアルタイムである必要はありませんが、TImageオブジェクトだけにして、後でアニメーションで使用するためにPNGに保存することもできます。私は3D機能を使用して満足していますが、それは2Dゲームで使用するためのものです。BlitzMax - 2Dネオンの輝線効果をPNGファイルに生成する

ブラック/スペースのバックグラウンドになるので、私の戦略は、色と透明度の高い一連の白いぼかし線を描画し、最終的に中心線のぼやけが少なく白くなるようにすることです。私が描きたいのは実際にはベジェ曲線です。曲線を描くのは簡単ですが、非常に細分化して見えるので、上記のテクニックを使って良いレーザー/ネオン効果を作り出すことはできません。だから、私は、1ピクセルのベジェ曲線である、よくレンダリングされるものにぼかしエフェクト/シェーダを使用する方が良いかもしれないと思います。私が持ってきた

問題は、次のとおりです。ラインが描かれている画面のちょうど特定の領域にシェーダを適用

  • 。テクスチャに線を描き、そのテクスチャをぼかしてpngを保存する方法があれば、それについて聞くのはすばらしいことです。これを行う方法が必要ですが、私はちょうど一緒に働いている正しい要素を得ていません。このようなことに精通している人の助けを借りていただければ幸いです。
  • 2Dコールだけを使用すると、理解して再利用するのが簡単になります。
  • 透明/アルファのものを保存するPNGを保存する方法を知っていることは非常にうれしいです。

p.s.私はこの記事(と他のもの)を見直し、サンプルを動作させ、自分の5x5シェーダを開発しました。しかし、それは3Dであり、2Dまたは特定の領域に変換されないようなシーン全体のものです。 http://www.blitzbasic.com/Community/posts.php?topic=85263

答えて

0

[OK]を、よく私はBlitzMaxについて知らないので、私は、実装に関する多くの詳細に入ることはできませんが、あなたにいくつかのポインタを与えること:

  • の特定の部分にシェーダを適用するためにイメージのみを使用する場合は、複数のレンダリングパスを使用してシーンを構成することをお勧めします。
  • ピクセルアクセスがある場合、フラグメントシェーダーと同じことを行うことは、2Dで可能な "oldskool way"です。 getpixel/setpixelのようなものです。しかし、この方法でパフォーマンスが大幅に低下します。
  • アルファチャンネルのテクスチャがそのまま残っている場合は、アルファチャンネルを使用してPNGに保存するだけで作業できます(申し訳ありませんが、BlitzMaxでこれを行う方法は特にありません)。 RGBAモードを使用していることを確認してください。
+0

BlitzMaxではシェーダーを読み込むことができますが、フラグメントの作業例がありますが、シェーダーを画面の特定の領域に適用する方法や1つの画像に適用する方法が明確ではありません。おそらくBlitzMaxの細部について詳述することなく、入り込むには大きすぎる対象です。ポインタをありがとう、私は趣味のプロジェクトに戻ってから数日後に私が思いつくことができるものを見ていきます。 – zanlok

関連する問題