概要
XYZ全方向へ均等に拡大縮小する場合はテクスチャも綺麗に伸び縮みしますが1方向にだけ拡大したりするとテクスチャがいびつに伸びてしまったりします。
マテリアルのTilingを調整すれば正しい縮尺にできますが、サイズの違うオブジェクトを大量に作る場合、用意するマテリアルがたくさん必要になり手間がかかる上、処理の負担も大きくなります。
こんな場合は専用のシェーダーを用意すればオブジェクトのスケールを気にする必要が無く、マテリアル一つで済むようになります。
本文
細かい説明は書きません!ShaderGraphの完成図だけ共有します
(→ShaderGraphの書き方はこちら)
これを3Dオブジェクトのシェーダーに設定すれば1方向に拡大したりしても均一なテクスチャで表示されます。Tilingを修正する必要もありません。
チェックポイント
(画像テクスチャ)
・ WrapModeはRepeatにして下さい。
(ShaderGraph)
・ EmissionColorのModeはHDRにして下さい。
・ NormalMapのTextureはTypeをNormalにして下さい。
・ PositionのSpaceはAbsolute Worldにして下さい。
参考にさせて頂いたサイトのリンク
【Unity】Shader Graphを使って「テクスチャが伸びる問題」を解決する
ShaderGraphを使った投影マッピングの拡張 - Material Tips #2
【Unity】Shader Graphを使った自作シェーダの解説をします!(Emission編)
UntiyShaderGraphでクリスタルなシェーダーを描く その②
【Unity】Shader Graphで、テクスチャーを設定する