@@ -203,10 +203,10 @@ void Frag(PackedVaryingsToPS packedInput,
203203 // Initialize the contactShadow and contactShadowFade fields
204204 InitContactShadow (posInput, context);
205205
206- float3 i_normalDir = surfaceData.normalWS;
207-
206+ float3 i_normalDir = surfaceData.normalWS;
208207
209208
209+ float channelAlpha = 0.0f ;
210210 float3 finalColor = float3 (0.0f , 0.0f , 0.0f );
211211 if (featureFlags & LIGHTFEATUREFLAGS_DIRECTIONAL)
212212 {
@@ -275,16 +275,16 @@ void Frag(PackedVaryingsToPS packedInput,
275275 if ( mainLightIndex >= 0 )
276276 {
277277#if defined (_SHADINGGRADEMAP)
278- finalColor = UTS_MainLightShadingGrademap (context, input, mainLightIndex, inverseClipping);
278+ finalColor = UTS_MainLightShadingGrademap (context, input, mainLightIndex, inverseClipping, channelAlpha );
279279#else
280- finalColor = UTS_MainLight (context, input, mainLightIndex, inverseClipping);
280+ finalColor = UTS_MainLight (context, input, mainLightIndex, inverseClipping, channelAlpha );
281281#endif
282282 }
283283
284284
285285
286286 int i = 0 ; // Declare once to avoid the D3D11 compiler warning.
287-
287+ float channelAlpha = 0.0f ;
288288 for (i = 0 ; i < (int )_DirectionalLightCount; ++i)
289289 {
290290 if (IsMatchingLightLayer (_DirectionalLightDatas[i].lightLayers, builtinData.renderingLayers))
@@ -295,11 +295,12 @@ void Frag(PackedVaryingsToPS packedInput,
295295 float3 lightColor = _DirectionalLightDatas[i].color;
296296 float3 lightDirection = -_DirectionalLightDatas[i].forward;
297297 float notDirectional = 0.0f ;
298+
298299#if defined (_SHADINGGRADEMAP)
299- float3 additionalLightColor = UTS_OtherLightsShadingGrademap (input, i_normalDir, lightColor, lightDirection, notDirectional);
300+ float3 additionalLightColor = UTS_OtherLightsShadingGrademap (input, i_normalDir, lightColor, lightDirection, notDirectional, channelAlpha );
300301
301302#else
302- float3 additionalLightColor = UTS_OtherLights (input, i_normalDir, lightColor, lightDirection, notDirectional);
303+ float3 additionalLightColor = UTS_OtherLights (input, i_normalDir, lightColor, lightDirection, notDirectional, channelAlpha );
303304#endif
304305 finalColor += additionalLightColor;
305306 }
@@ -476,7 +477,7 @@ void Frag(PackedVaryingsToPS packedInput,
476477
477478 uint v_lightListOffset = 0 ;
478479 uint v_lightIdx = lightStart;
479-
480+ float channelAlpha = 0.0f ;
480481 [loop]
481482 while (v_lightListOffset < lightCount)
482483 {
@@ -506,9 +507,9 @@ void Frag(PackedVaryingsToPS packedInput,
506507 if (IsMatchingLightLayer (s_lightData.lightLayers, builtinData.renderingLayers))
507508 {
508509#if defined (_SHADINGGRADEMAP)
509- float3 pointLightColor = UTS_OtherLightsShadingGrademap (input, i_normalDir, additionalLightColor, lightDirection, notDirectional);
510+ float3 pointLightColor = UTS_OtherLightsShadingGrademap (input, i_normalDir, additionalLightColor, lightDirection, notDirectional, channelAlpha );
510511#else
511- float3 pointLightColor = UTS_OtherLights (input, i_normalDir, additionalLightColor, lightDirection, notDirectional);
512+ float3 pointLightColor = UTS_OtherLights (input, i_normalDir, additionalLightColor, lightDirection, notDirectional, channelAlpha );
512513#endif
513514 finalColor += pointLightColor;
514515 }
0 commit comments