【Unity】Shaderを使ってImageに模様を加算処理する


透明処理で切り抜かれたImageに、パターン画像を加算してこんな感じのを作りたい。

なかなか上手くいかなくて色々試してみた。

 

MASK処理を使う

多分一番簡単な方法。

ふきだし画像の下に半透明なパターン画像を置いて、ふきだしにマスクを追加する。

ただし、ステンシル処理してるところに被るとマスクが上手く働かない。

 

パターンを加算するマテリアルを適用

ふきだし画像の Material にパターン描写するような特性をつける。

シェーダーもいっぱいあるのでいろいろ試してみるが上手くいかない※。

Particles > Additive 付近がそれっぽいけど無理だった。

※シェーダー知識はほぼゼロ

 

スクリプトで設定

前に文字でやったように Texture2D をイジって設定する。

何でも出来るけど処理対象が多いとそれだけ遅くなる。

今回のケースだとスマホで使い物にならないレベルだったので却下。

 

シェーダーを作る

これはしたくなかったけど処理が早くて何でも出来る。

ここからビルドインシェーダーをDLして、参考にしながら弄ってみる。

_MainTex(ふきだし)の色とアルファ値に_MainTex2(パターン)の色を加算する。

パターンは下のような白黒のを用意して 0.5 引くことでどんな色に対してもそれっぽいパターンを表現できるようにした。

色々やったけどシェーダーへの理解はまったく進まない…。

理解しようと思えない感じはなんなんだろう。

 


コメントを残す

メールアドレスが公開されることはありません。