-100p

-10p

+10p

+100p

Unityシェーダーで画像が途切れる問題の対処

Unityシェーダーでアウトラインが途切れる問題の対処法。Mesh Type Full Rectの設定。

関連ページ
Unityで画像のUV座標をいじったりするシェーダーを使うと、画像が奇妙なところで途切れることがある。
コードを何度見返しても間違いないし、画像も適切なものを使ってるのに修正できずしばらく悩んだ。
答えはTextureの設定だった。

TextureのMesh Typeを変更する

まず前提として、画像のUV座標を操作するシェーダーでは、その画像の範囲を超えた先まで座標を移動することはできない。
例えば下の画像は、画像を左右上下にぶれさせてアウトラインを拡張するBlurシェーダーを応用したBloom(発光)シェーダーになる。
見ての通り、拡張したアウトラインが不自然に正方形に収まってる。


なのでシェーダーを適用させる画像には、あらかじめ周囲に透明な空白部分を作っておく必要がある。

しかし画像を修正しても何故かアウトラインが修正されない。


理由は簡単で、TextureのMesh TypeをTightからFull Rectに変更する必要があった。

0
0

-100p

-10p

+10p

+100p