■ 概要
本記事ではUnityのShaderGraphを使った
「マーブルノイズ(マーブル模様)の実装」
を紹介します。
■ 環境
Unityバージョン:Unity2022.3.44f1
プロジェクトテンプレート:Universal 3D
今回はShaderGraphの機能が標準で搭載されている「URP」レンダリングパイプラインのプロジェクトで実装しています。
※ビルトインのレンダリングパイプラインでも、パッケージを後からインストールしてShaderGraphを使用することができます。
その手順はこちらの記事が参考になります。
■ 実装
① 2種のノイズを生成
異なるベクトルにスクロールするUV座標から2種類のノイズを生成する。
② ノイズを合成
①で生成された2種類のノイズを加算合成する。
③ 静止したノイズを合成
②で合成されたノイズに、静止したノイズを加算合成する。
④ ノイズの最終アプトプットを生成
③の出力結果のままだと加算合成によってほとんど真っ白になってしまっているため、新たなノイズを生成して、③の出力結果でオフセットさせる。
※ ノイズの調整 1
ノイズにもう少し複雑さを加えるために、③の出力結果を合成する。乗算合成によってコントラストもいい感じに調整されます。
※ ノイズの調整 2
よりコントラストをはっきりさせるために「Smoothstep」ノードを使用し、閾値を調整します。
⑤ 2色を線形補間
最終的なノイズの出力結果をパラメーターとして、2色のカラーを線形補間する。
■ 最後に (感想)
「Simple Noise」ノードを組み合わせて比較的簡単に実装することができました。
次回はこのマーブルノイズの実装を応用して、画面タップの座標を使ったインタラクティブなシェーダー表現を実装してみたいと思います。
ご覧いただきありがとうございました。