はじめに
ShaderGraphを使いモザイクエフェクトを作ってみます。
環境
Unity6
URP
こんな感じのを作ります
ShaderGraphを作成
Create → ShaderGraph → URP → UnlitShaderGraph
名前 | 説明 |
---|---|
Lit Shader Graph | ライトの影響を受けるシェーダーです。Unityが自動でライトの計算をしてくれます。 |
Unlit Shader Graph | ライトの影響を受けないシェーダーです。最終的な色を自分で完全に制御します。 |
ノード
解説
最初にGraph InspectorにあるSurface TypeをTransparentにします。あと左上のpropertyからFloatで変数を作っておきましょう。マテリアルから調節できるようになります。
後は右クリックのCreate Nodeからそれぞれ探して設定していきます。
名前 | 説明 |
---|---|
Screen Position | 画面上の位置 |
Posterize | 入力値を荒くする |
Scene Color | 背景の色を取ってくる |
マテリアル作成
新しくマテリアルを作って
作成したShaderをドラッグアンドドロップします
↓
なんでもいいのでオブジェクトを作成します。
そしてマテリアルを適応
もっと荒くしたい場合マテリアルのStepsを増やします。
100ぐらいにしたもの
このままでもいいのですが一つ問題があります。モザイクの形状が正方形にならずちょっと気持ち悪いです。
直し方はあるのですがまた気が向いたときに追記します。