web-dev-qa-db-ja.com

OpenGLのラインに光る効果を追加するにはどうすればよいですか?

描いた線に光る効果を追加するにはどうすればよいですか? Linux用のOpenGLを使用しています。

13
joi

Neheレッスン36 で説明されているラジアルブラー効果を実装できます。主なアイデアは、図面をテクスチャにレンダリングし、各レンダリングの後に、図面をフレームバッファにコピーする準備ができるまで、小さなオフセットでN回実行することです。

QtとOpenGL を使用する小さなデモを作成しました。以下に元の図面(ぼかしなし)を示します。

enter image description here

次の画像は、ぼかしを使用した描画効果をオンにしたものを示しています。

enter image description here

それほど多くないことは知っていますが、それは始まりです。

8
karlphillip

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

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

詳細については、@ Valmondが提供するリンクを参照してください

編集:

これは、法線、位置、および「グローフラグ」などの他の情報がテクスチャにレンダリングされる、つまりテクスチャのさまざまなコンポーネントに格納される遅延レンダリングで実現できることを追加する必要があります。次に、シェーダーはテクスチャから読み取り、必要なすべてのデータがレンダリングされたテクスチャから利用できるため、1回のパスで稲妻の計算と後処理効果を実行します。

7
edvaldig

これをチェックしてください: http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch21.html

グロー効果の作り方を簡単に説明しています。

4
Valmond

シェーダーを使用せずに、テクスチャにレンダリングして放射状にぼかしを行うこともできます。出発点としてチェックアウト NeHe-Tutorials

1
Zappotek