【環境】 Unity2021.3.16f1, URP12.1.8, Forward
通常 Light の Intensity を大きくすれば遠くまで明るくできるが、近い部分がライトの色が強く反映されてしまう
これを URP をカスタマイズすればなんとかできるんじゃないかと思ったのでやってみる
URP のカスタマイズはこちら を参考にしてください
追加ライトまわりの処理をしているのが com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl
の以下の関数
ライトの色を加算しているために色が濃くなっているようです
half3 CalculateLightingColor(LightingData lightingData, half3 albedo) { ・・・ if (IsLightingFeatureEnabled(DEBUGLIGHTINGFEATUREFLAGS_ADDITIONAL_LIGHTS)) { lightingColor += lightingData.additionalLightsColor; } }
ということでここに以下のように制限を加えてみます
--- lightingColor += lightingData.additionalLightsColor; +++ lightingColor += min(lightingData.additionalLightsColor, half3(1, 1, 1) * 0.2);
結果白くなりすぎず、ちょっと明るい程度まで色を落とすことができました