2011-01-13 9 views
10

GLSLシェーダを作成して、オブジェクトをグローイングエフェクトで囲むことは可能ですか? 私は3次元立方体を持っているとしましょう、それが選択されている場合、立方体は青い輝く効果で囲まれるべきです。何かヒント?GLSLオブジェクトグローブ

答えて

12

これにはいくつかの方法があります。各オブジェクトがwinged edge形式でも表されている場合は、シルエットを計算してからそれを押し出してグローを生成するのは簡単です。しかし、これはCPUメソッドです。

GPUメソッドでは、ステンシルをインクリメントするように設定してオフスクリーンバッファに描画することができます。画像上でぼかしを実行すると(ステンシルがゼロ以外のピクセルに書き込むだけですら)、画像の端にぼやけができ、アルファブレンディングでメインのシーンに描画できます。これはグローよりもぼかしですが、輝きを再現するように輝度を再調整するのは比較的簡単です。

他の方法の多くは、あまりにも...ここにあり、あなたは一読するためのリンクのカップルです:たくさんの情報がありますので

http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html
http://www.codeproject.com/KB/directx/stencilbufferglowspart1.aspx?display=Mobile

はGoogleでハントラウンドを持っています:)