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


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

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

 

MASK処理を使う

多分一番簡単な方法。

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

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

 

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

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

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

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

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

 

スクリプトで設定

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

【Unity】Textにテクスチャを貼り付ける
文字をグラデーションにするのは出来たけどテクスチャを張ることは出来ない。ポップで自由なフォントを使うにはビットマップフォントを作って適用する必要がある。 ...

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

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

 

シェーダーを作る

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

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

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

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

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

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

 


コメントを残す

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