【Unity】URPで影が汚いときの対処法

はじめに

今回はレンダリングパイプラインをURPに変更したら影が汚くなった時の対処法を紹介します。

設定を真似るだけで綺麗な影にすることができるので、気になる方はぜひ試してみてください。

影を綺麗にする手順

細かい説明は後に回して早速影を綺麗にしてみましょう。

URP移行時に作成したUniversal Render Pipeline Assetを選択します。

※Universal Render Pipeline Assetがないという方はこちらの記事を参考にしてください

Inspectorを見るとShadowsという欄があると思います。

赤枠で囲んだ部分を調整すると影を綺麗にすることができます。

各パラメータの解説

それぞれのパラメータの意味を見ていきましょう。

影にはCascadeShadowMapという手法が使われています。

こちらは近くの影は綺麗に、遠くの影は荒くすることで処理負荷を軽減しつつ良く見える部分の影は綺麗に描画するという方法になっています。

説明が長くなるので今回はCascadeShadowMapについて詳しく説明はしません。

ShadowResolution

ShadowMapに使うテクスチャの解像度を設定します。

大きいほどきれいになりますが、その分負荷が高まります。

今回は1024に設定しました。

MaxDistance

影が出るまでの距離(カメラからの)

これ以上奥に行くと影が出なくなります。

こちらはデフォルトの50のままにしています。

CascadeCount

先ほどCascadeShadowMapは手前は綺麗に、奥は荒く影を描画すると説明しました。

これは奥に行くほど徐々に荒くなるわけではなく、一定の距離を超えると影の品質が下がります。

その境界を何段階にするかという設定です。

これはあまり多くしすぎても処理負荷が高くなるので、今回は3にしています。

SplitとLast Boarder

影の品質を落とす距離を決めます。

CascadeCountで設定した数分の設定が必要です。

手前の割合を少なくしてやることで、綺麗な影にできます。

ゲームによって最適な数値が変わってくるので、色々試しましょう。(分からない場合はデフォルトの設定でゲーム画面が変じゃなければOK)

WorkingUnit

SplitとLast Boarderの値を「メートル」か「パーセント(割合)」のどちらかに設定できます。

今回はパーセントで設定しています。

DepthBiasとNormalBias

影を出そうとすると、シャドーアクネという縞模様のようなものがオブジェクトに出てしまうことがあります。

それを防ぐためのパラメータです。

大きくしすぎると影が変な形になることがあります。

今回はデフォルトのままです。

SoftShadows

影の境目がぼやかして、ソフトな感じにできます。

こちらは結構重い処理なので、余裕があればOnにしましょう。

まとめ

以上が影を綺麗にする方法でした。

影は想像以上に重い処理なので、処理負荷に注意しながら調整していきましょう。

👇この記事を読んだあなたにお勧めの書籍

コメント