3

私は現在、Brad Larson の優れた GPUImage フレームワークを使用して iPhone ベースのアプリを作成しています。カメラ入力の中央にある円形の領域を処理して、セクションがぼやけ、周囲の領域が焦点を合わせられるようにしたいと考えています。

GPUImageGaussianSelectiveBlurFilter を使用して反対のことを実現できます (つまり、画面の中央領域に焦点を合わせ、周囲の領域をぼかす)。

反対の GPUImageGaussianSelectiveBlurFilter に基づいて新しいフィルターを作成することで、これを行う簡単な方法を知っている人はいますか?

4

1 に答える 1

2

このような質問は、フレームワークに固有のものであることを考えると、プロジェクトの GitHub の問題ページの方が適切かもしれませんが、私はこれにすぐに答えることができます。

GPUImageGaussianSelectiveBlurFilter のコードを使用して新しいフィルターを作成し、フラグメント シェーダーの次の行を置き換えます。

gl_FragColor = mix(sharpImageColor, blurredImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter)); 

gl_FragColor = mix(blurredImageColor, sharpImageColor, smoothstep(excludeCircleRadius - excludeBlurSize, excludeCircleRadius, distanceFromCenter));

これにより、焦点円の内側と外側のポイントについて、どの画像 (ぼやけたまたは鮮明) がサンプリングされるかが反転します。これで、円の内側がぼやけ、外側がシャープになります。

于 2012-08-13T17:50:34.417 に答える