2011-11-28 7 views
13

描画する線に光沢のある効果を追加するにはどうすればよいですか?私はOpenGL for Linuxを使用しています。OpenGLのラインに輝く効果を追加するには?

+2

これは一般的に「[bloom]を追加する(http://en.wikipedia.org/wiki/Bloom_(shader_effect))」と呼ばれ、検索に役立ちます。それを行う方法の良いセクションがあります[ここ](http://ofps.oreilly.com/titles/9780596804824/chadvanced.html#fig-BloomTriptych) – bobobobo

+0

また、光輝効果の素晴らしいサマリーがあります[ここ] http://prideout.net/archive/bloom/) – bobobobo

答えて

7

私はあまりにも簡単な解決策を望んでいましたが、残念なことに、少なくとも初心者にとっては少し複雑です。

API(D3D、OpenGL)に関係なく、今日の光り輝くエフェクトの実装方法はピクセル/フラグメントシェーダーです。これは通常、シーンをレンダリングする複数のレンダリングパスを含み、次に「光るオブジェクト」だけが表示されるパスをレンダリングし、その後、ピクセルブラダーを適用して一緒に合成します。

詳細

編集するため@Valmondによって提供されるリンク参照:「グローフラグ」のような法線、位置およびその他の情報がどこにあるかこれが遅延レンダリングを達成することができることを加えるべきである

をテクスチャにレンダリングされる、すなわちテクスチャの異なるコンポーネントに格納される。シェーダはテクスチャから読み込み、必要なすべてのデータがレンダリングされたテクスチャから利用可能であるため、稲妻計算と後処理エフェクトを1回のパスで実行します。

1

シェーダを使用しないと、テクスチャにレンダリングしたり、放射状にぼかしたりすることもできます。 出発点として、NeHe-Tutorialsをチェックしてください。

8

Nehe Lesson 36に記載されている放射状のぼかしを実装できます。主な考え方は、描画をテクスチャにレンダリングし、描画がフレームバッファにコピーされる準備が整うまで、各レンダリング後に小さなオフセットでN回行うことです。

Qt and OpenGLを使用した小さなデモを作成しました。私が知っている

enter image description here

:次の画像がぼやけ効果がオンに描画を示し

enter image description here

:あなたは(ぼかしなし)、元の図面以下を見ることができますそれほどではありませんが、それはスタートです。

関連する問題