iPhoneアプリのGLSLシェーダー(カメラからの画像のキャプチャ)を使用して、画面の中央ピクセルにPhotoshopの「魔法の杖」のような効果を作成したいと思います。これを作成するには、ピクセルの配列を取得し、中央のピクセルに何らかのフラッドフィルアルゴリズムを適用します(すべてObjective-Cコードを使用)。これはCPUで実行されますが、これは私には少し遅すぎるので、GLSLシェーダーを使用して作成してみたいと思います。
実際に必要なのは、フラグメントシェーダーのフラッドフィルを書き直して、現在のフラグメントの色がしきい値の色に近いかどうか、現在のフラグメントが以前に検出されたエリア内のフラグメントの隣にあるかどうかを確認することだけです。それは私には混乱しすぎて、それが可能かどうかさえ理解できません。
フラッドフィルのアルゴリズムは(擬似コード)です。
Flood-fill (node, target-color, replacement-color):
1. Set Q to the empty queue.
2. If the color of node is not equal to target-color, return.
3. Add node to Q.
4. For each element n of Q:
5. If the color of n is equal to target-color:
6. Set w and e equal to n.
7. Move w to the west until the color of the node to the west of w no longer matches target-color.
8. Move e to the east until the color of the node to the east of e no longer matches target-color.
9. Set the color of nodes between w and e to replacement-color.
10. For each node n between w and e:
11. If the color of the node to the north of n is target-color, add that node to Q.
12. If the color of the node to the south of n is target-color, add that node to Q.
13. Continue looping until Q is exhausted.
14. Return.
質問:シェーダーでそれを行うことは可能ですか?はいの場合、どうすればそれを行うことができますか?
ありがとう!