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

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

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

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

TextureのMesh Typeを変更する

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

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

しかし画像を修正しても何故かアウトラインが修正されませんでした。
余白が正しくUnity側に反映されない

理由は簡単で、TextureのMesh TypeをTightからFull Rectに変更する必要がありました。
MeshTypeを変更しバグを修正

0
0