「After Effects」の Light Glow 効果の背後にある理論は何ですか? GLSLを使ってそれを実現したいです。しかし、少なくともその背後にある理論に近づくことができれば、それを再現することができます.
3 に答える
私は最近、似たようなものを実装しています。私のレンダリング パイプラインは次のようになります。
- シーンをテクスチャにレンダリング (フルスクリーン)
- シーンをフィルター処理 (「ブライト パス」) して、高輝度で光沢のあるビットを分離します。
- (2) をより小さなテクスチャにダウンサンプリングし (パフォーマンスのために)、H ガウス ブラーを実行します。
- (3) に V ガウスぼかしを実行します。
- (4) からの出力を (1) からの出力とブレンドする
- 画面に表示します。
パラメータを微調整すると、見栄えがよくなります。「ブライトパス」(ローパスフィルター)、ガウスぼかし、FBO(フレームバッファオブジェクト)などのGoogleのもの。「ブルーム」や「HDR」などの効果には、これらのそれぞれを行うさまざまな方法に関する豊富な情報もあります。現在の方法に落ち着く前に、ガウスぼかしを行う約 4 つの異なる方法を試しました。
シャドウ ボリュームの作成方法を見てください。シャドウをステンシルで描く代わりに、ボリュームにマルチパス ブラーを実行し、そのマテリアルを非常に放射性の高い加算ブレンド シェーダーに設定すると、同様の効果が得られると思います。 .
または、 GPUGemsの実装を行うこともできます。
誰かが同じ時点でここにたどり着いた場合に備えて、私は自分の質問に答えます。より正確に (実際には 100% の精度で)、正確な After Effects の輝きを得ることができました。仕組みは次のとおりです。
- 元の画像にガウスぼかしを適用します。
- このぼやけた画像の輝度を抽出します
- After Effects と同様に、2 つの色 (A と B) があります。そのため、目的の「カラー ループ」に合わせて、これらの色の間にグラデーション マップを作成することが秘訣です。ご存じない方のために説明すると、グラデーション マップは色 (この場合は A と B) 間の補間です。After Effects の同じボキャブラリーに従って、選択した「カラー ループ」を X 回ループする必要があります。つまり、A->B->A のようにカラー ループを使用すると、1 つのループと見なされます。画像に重ねます (Photoshop で試すことができます)。
- ステップ 2 で抽出した輝度を取得し、グラデーション マップのパラメーターとして使用します。つまり、輝度 = (0%、50%、100%) はそれぞれ色 (A、B、A) にマップされます。中間点が補間されます。
- 必要な「グロー操作」(加算、乗算など)に従って、元の画像と画像をブレンドします
この手順は、すべてのピクセルに対して After Effects のように機能します。グローの他の詳細は、基本的な手順の後に簡単に行うことができます...「グロー強度」、「グローしきい値」などは、同じパラメーターで同じ結果を得るために調整する必要があります。