しゅみぷろスマートフォン用の表示で見るしゅみぷろプログラミングとかこの広告は、90日以上更新していないブログに表示しています。ShaderUnityでマスクを用いたエフェクト処理を色々と試してみたのでメモ。qiita.comマスク処理とはマスクと呼ばれる数値の集合と、注目ピクセルの周辺のピクセル色を一定の規則に従って計算する処理をマスク処理といいます。注目ピクセルとその周辺ピクセルを$S_n$で表し、マスクデータの各要素を$M_n$で表した時、出力するべきピクセル色$X$は以下の式で計算できます。$$こうして得たピクセル色に対して、加算を行った数を除算すれば処理は完了です。...マスク処理をするシェーダです。3×3のマスクに対応するようにしています。マスク適用後の除算に用いるこれらの変数はC#スクリプトから代入しています。このスクリプトをカメラに取り付け、MaskPattern.shaderを適用したマテリアルをインスペクターからスクリプトに貼り付ければ動きます。MatrixやDivの値を変更することで、様々な効果が得られると思います。注意ですが、Matrixは4×4ですが、3×3の領域しか使っていません。その他の領域を弄っても効果は得られません。実装ですね、、ごめんなさい。スクリプトから3×3のマトリックスを入れてやりたかったのですが、良い方法が見つけられず、変数大量に作ったりするのもなぁと思い妥協しました。いい方法ご存知でしたらご教示くださいませ。実際に使ってみてどんな効果が得られるか見ていきたいと思います。効果適用前の画像です。色の変化をゆるやかにする処理です。画像がちょっとぼやけて見えます。エッジ抽出エッジ抽出は画像内に含まれる輪郭線を抽出する処理です。今回使用したマスクはとても単純な横方向のエッジ検出をするマスクです。エッジ抽出のマスクパターンにはPrewittオペレータSobelオペレータRobertsオペレータRobinsonオペレータKirschオペレータなどが有名らしいです。先鋭化は、境界部分を鮮明にする処理です。色の変化の大きい部分を検出し、さらに変化を大きくすることで実現しています。)はてなブログをはじめよう!es_programさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。