1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Unity]3Dオブジェクトのスケールを変更してもテクスチャを綺麗にタイリングする方法

Posted at

概要

例えばこんな感じの3Dオブジェクトがあって
スクリーンショット 2023-08-27 8.48.09.png

XYZ全方向へ均等に拡大縮小する場合はテクスチャも綺麗に伸び縮みしますが1方向にだけ拡大したりするとテクスチャがいびつに伸びてしまったりします。
スクリーンショット 2023-08-27 8.48.28.png
マテリアルのTilingを調整すれば正しい縮尺にできますが、サイズの違うオブジェクトを大量に作る場合、用意するマテリアルがたくさん必要になり手間がかかる上、処理の負担も大きくなります。
こんな場合は専用のシェーダーを用意すればオブジェクトのスケールを気にする必要が無く、マテリアル一つで済むようになります。

本文

細かい説明は書きません!ShaderGraphの完成図だけ共有します:raised_hands_tone2:
(→ShaderGraphの書き方はこちら
スクリーンショット 2023-08-27 8.32.04.png
これを3Dオブジェクトのシェーダーに設定すれば1方向に拡大したりしても均一なテクスチャで表示されます。Tilingを修正する必要もありません。
スクリーンショット 2023-08-27 8.48.54.png

チェックポイント
(画像テクスチャ)
・ 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で、テクスチャーを設定する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?