Unityテクスチャやレンダリング結果などからエッジを抽出するにはいくつかの方法があります。ここではソーベルフィルタというフィルタをかけることで抽出する方法を紹介します。ソーベルフィルタとは?まず前提としてこの方法では、色の差が大きい部分をエッジとみなします。この前提を以ってソーベルフィルタの考え方を説明します。ソーベルフィルタではまず各ピクセルに対して下記のコンボリューション行列を適用します。この結果、たとえば垂直方向について、当該ピクセルの上にあるピクセルと下にあるピクセルの色の差が大きければ大きいほど、行列適用結果の値が大きな負の値、あるいは大きな正の値となります。要は行列適用結果の値の絶対値が大きいほど、そこはエッジであるだろうとみなせるということです。垂直方向と水平方向の行列適用結果をうまく組み合わせればエッジが抽出できます。(この方法は次節で説明します)シェーダソーベルフィルタを使ってテクスチャから輪郭を抽出してみます。}}大枠の説明はコメントに書きました。元のテクスチャ色に前節で説明した二つの行列を適用したものがそれぞれhorizontalColorとverticalColorとなります。前節で説明した通り、この値の絶対値が大きい部分をアウトラインとします。コメントの※1でこれらをそれぞれ二乗してから足し合わせることで、符号を考慮することなく値が大きい部分をアウトラインとみなせるようにしています。今回はこのテクスチャの輪郭を抽出してみます。輪郭が抽出されました。マテリアルのパラメータをいじると輪郭を出やすくしたり太さを変えられたりします。DAZEの輪郭線に使われてるようです。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。