投稿者 tel | 2014年7月24日

ポストエフェクトでアウトラインを表示する

難しいことはしてなくてフラグメントシェーダでレンダリングしたテクスチャからカラーを見て差分をとっているだけ。

precision mediump float;
varying vec2 uv;
uniform sampler2D tex;
uniform vec2 offset;
void main() {
    vec4 c = texture2D(tex,uv);
    vec4 h = 1.0 - abs(texture2D(tex, uv + vec2(offset.x, 0.0)) - c);
    vec4 v = 1.0 - abs(texture2D(tex, uv + vec2(0.0, offset.y)) - c);
    c = h * v;
    gl_FragColor=vec4(c.rgb,1.0);
}

outline_ss

この画像に対して左右、上下との差分を取る。

outline_ss_1

http://jsdo.it/sapphire_al2o3/uJCKe


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。