[Unity] Shaderで波紋のようなものを出してみる(2Dだよ)

お世話になっております。
しゃまとんです。

UnityのShader初心者でございます。ちょっとエフェクト作ってみようかなということで、触っているのですが、ちょっと勝手が違っていて調べたり試行錯誤が大変ですね。
UnityでShader頑張ってみた系の記事を作ってくださっている方に感謝しきりです。

で、何か波打ってるようなものを作ろうとということで波紋的なものを出せないかなということをやっていて、なんとかできたのでメモしておきます。

ちなみにこの記事ですが3Dの波紋表現ではないので、ご注意くださいませ。

それでは、Shaderはこんな感じです。

波紋のような表示をさせる部分はフラグメントシェーダーの部分のみ(frag関数)で他の部分は何もいじっていません。

波紋にはsin関数を使って、その波をそのまま利用しています。適当に係数(c)をつけることで変化を細かくするようにしています。
sin関数の引数にはテクスチャの中心点から波が発生していくような数値を設定しています。

この部分で中心点でるように計算されています。

シェーダを作成後、マテリアルを生成して適当なSpriteに設定します。
実行するとこんな感じになります。

ripple_eye

なんか洗脳されそうですねw
行数にしたら数行ですが、これだけで出来ちゃうShaderすごい。もっと色々な表現できるようになりたいものです。

以上です。

■ UnityのShader関連
[Unity] シェーダで使える定義済値
Unity のシェーダの基礎を勉強してみたのでやる気出してまとめてみた

■ UnityのShaderじゃないけど勉強になります!
[連載]やってみれば超簡単! WebGL と GLSL で始める、はじめてのシェーダコーディング(1)

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です