Skip to content

Commit a0d70d9

Browse files
committed
except outline, DoubleShadeWithFeatherMainLight is OK.
1 parent 61b080b commit a0d70d9

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

com.unity.toonshader/Runtime/HDRP/Shaders/DoubleShadeWithFeatherMainLight.hlsl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
33
//[email protected] (Universal RP/HDRP)
44

5-
float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int mainLightIndex, out float inverseClipping, out float channelAlpha)
5+
float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int mainLightIndex, out float inverseClipping, out float channelOutAlpha)
66
{
7-
channelAlpha = 1.0f;
7+
channelOutAlpha = 1.0f;
88
uint2 tileIndex = uint2(input.positionSS.xy) / GetTileSize();
99
inverseClipping = 0;
1010
// input.positionSS is SV_Position
@@ -115,6 +115,7 @@ float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int ma
115115
float maskEnabled = max(_BaseColorOverridden, _ComposerMaskMode);
116116
Set_BaseColor = lerp(Set_BaseColor, overridingColor, maskEnabled);
117117
Set_BaseColor *= _BaseColorVisible;
118+
float Set_BaseColorAlpha = _BaseColorVisible;
118119
#endif //#ifdef UTS_LAYER_VISIBILITY
119120
//v.2.0.5
120121
float4 _1st_ShadeMap_var = lerp(tex2D(_1st_ShadeMap, TRANSFORM_TEX(Set_UV0, _1st_ShadeMap)), _MainTex_var, _Use_BaseAs1st);
@@ -133,6 +134,7 @@ float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int ma
133134
Set_1st_ShadeColor = lerp(Set_1st_ShadeColor, overridingColor.xyz, maskEnabled);
134135
Set_1st_ShadeColor = lerp(Set_1st_ShadeColor, Set_BaseColor, 1.0f - _FirstShadeVisible);
135136
}
137+
float Set_1st_ShadeAlpha = _FirstShadeVisible;
136138
#endif //#ifdef UTS_LAYER_VISIBILITY
137139
//v.2.0.5
138140
float4 _2nd_ShadeMap_var = lerp(tex2D(_2nd_ShadeMap, TRANSFORM_TEX(Set_UV0, _2nd_ShadeMap)), _1st_ShadeMap_var, _Use_1stAs2nd);
@@ -170,8 +172,10 @@ float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int ma
170172
Set_2nd_ShadeColor = lerp(Set_2nd_ShadeColor, overridingColor.xyz, maskEnabled);
171173
Set_2nd_ShadeColor = lerp(Set_2nd_ShadeColor, Set_BaseColor, 1.0f - _SecondShadeVisible);
172174
}
175+
float Set_2nd_ShadeAlpha = _SecondShadeVisible;
173176
#endif //#ifdef UTS_LAYER_VISIBILITY
174177
float3 Set_FinalBaseColor = lerp(Set_BaseColor, lerp(Set_1st_ShadeColor, Set_2nd_ShadeColor, saturate((1.0 + ((_HalfLambert_var - (_ShadeColor_Step - _2ndColorFeatherForMask)) * ((1.0 - _Set_2nd_ShadePosition_var.rgb).r - 1.0)) / (_ShadeColor_Step - (_ShadeColor_Step - _2ndColorFeatherForMask))))), Set_FinalShadowMask); // Final Color
178+
channelOutAlpha = lerp(Set_BaseColorAlpha, lerp(Set_1st_ShadeAlpha, Set_2nd_ShadeAlpha, saturate((1.0 + ((_HalfLambert_var - (_ShadeColor_Step - _2ndColorFeatherForMask)) * ((1.0 - _Set_2nd_ShadePosition_var.rgb).r - 1.0)) / (_ShadeColor_Step - (_ShadeColor_Step - _2ndColorFeatherForMask))))), Set_FinalShadowMask);
175179
#ifdef _SYNTHESIZED_TEXTURE
176180
float4 _Set_HighColorMask_var = tex2D(_HighColor_TexSynthesized, TRANSFORM_TEX(Set_UV0, _HighColor_TexSynthesized)).aaaa;
177181
#else
@@ -213,6 +217,7 @@ float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int ma
213217
if (any(addColor))
214218
{
215219
Set_HighColor = lerp(Set_HighColor, overridingColor.xyz, maskEnabled);
220+
channelOutAlpha = _HighlightVisible;
216221
}
217222
}
218223

@@ -234,13 +239,14 @@ float3 UTS_MainLight(LightLoopContext lightLoopContext, FragInputs input, int ma
234239
#ifdef UTS_LAYER_VISIBILITY
235240
float4 overridingRimColor = lerp(_RimLightMaskColor, float4(_RimLightMaskColor.w, _RimLightMaskColor.w, _RimLightMaskColor.w, 1.0f), _ComposerMaskMode);
236241
float maskRimEnabled = max(_RimLightOverridden, _ComposerMaskMode);
237-
242+
float Set_RimLightAlpha = _RimLightVisible;
238243
float3 Set_RimLight = (saturate((_Set_RimLightMask_var.g + _Tweak_RimLightMaskLevel)) * lerp(_LightDirection_MaskOn_var, (_LightDirection_MaskOn_var + (lerp(_Ap_RimLightColor.rgb, (_Ap_RimLightColor.rgb * Set_LightColor), _Is_LightColor_Ap_RimLight) * saturate((lerp((0.0 + ((_ApRimLightPower_var - _RimLight_InsideMask) * (1.0 - 0.0)) / (1.0 - _RimLight_InsideMask)), step(_RimLight_InsideMask, _ApRimLightPower_var), _Ap_RimLight_FeatherOff) - (saturate(_VertHalfLambert_var) + _Tweak_LightDirection_MaskLevel))))), _Add_Antipodean_RimLight));
239244
Set_RimLight *= _RimLightVisible;
240245
float3 _RimLight_var = lerp(Set_HighColor, (Set_HighColor + Set_RimLight), _RimLight);
241246
if (any(Set_RimLight) * maskRimEnabled)
242247
{
243248
_RimLight_var = overridingRimColor.xyz;
249+
channelOutAlpha = Set_RimLightAlpha;
244250
}
245251
#else
246252
float3 Set_RimLight = (saturate((_Set_RimLightMask_var.g + _Tweak_RimLightMaskLevel)) * lerp(_LightDirection_MaskOn_var, (_LightDirection_MaskOn_var + (lerp(_Ap_RimLightColor.rgb, (_Ap_RimLightColor.rgb * Set_LightColor), _Is_LightColor_Ap_RimLight) * saturate((lerp((0.0 + ((_ApRimLightPower_var - _RimLight_InsideMask) * (1.0 - 0.0)) / (1.0 - _RimLight_InsideMask)), step(_RimLight_InsideMask, _ApRimLightPower_var), _Ap_RimLight_FeatherOff) - (saturate(_VertHalfLambert_var) + _Tweak_LightDirection_MaskLevel))))), _Add_Antipodean_RimLight));

com.unity.toonshader/Runtime/HDRP/Shaders/ShaderPassForwardUTS.hlsl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ void Frag(PackedVaryingsToPS packedInput,
284284

285285

286286
int i = 0; // Declare once to avoid the D3D11 compiler warning.
287-
float channelAlpha = 0.0f;
287+
288288
for (i = 0; i < (int)_DirectionalLightCount; ++i)
289289
{
290290
if (IsMatchingLightLayer(_DirectionalLightDatas[i].lightLayers, builtinData.renderingLayers))
@@ -528,12 +528,12 @@ void Frag(PackedVaryingsToPS packedInput,
528528
//v.2.0.4
529529
#ifdef _IS_TRANSCLIPPING_OFF
530530

531-
outColor = float4(finalColor, 1);
531+
outColor = float4(finalColor, 1 * channelAlpha);
532532

533533
#elif _IS_TRANSCLIPPING_ON
534534
float Set_Opacity = saturate((inverseClipping + _Tweak_transparency));
535535

536-
outColor = float4(finalColor, Set_Opacity);
536+
outColor = float4(finalColor, Set_Opacity * channelAlpha );
537537

538538
#endif
539539

@@ -542,17 +542,17 @@ void Frag(PackedVaryingsToPS packedInput,
542542
#ifdef _IS_CLIPPING_OFF
543543
//DoubleShadeWithFeather
544544

545-
outColor = float4(finalColor, 1);
545+
outColor = float4(finalColor, 1 * channelAlpha);
546546

547547
#elif _IS_CLIPPING_MODE
548548
//DoubleShadeWithFeather_Clipping
549549

550-
outColor = float4(finalColor, 1);
550+
outColor = float4(finalColor, 1 * channelAlpha);
551551

552552
#elif _IS_CLIPPING_TRANSMODE
553553
//DoubleShadeWithFeather_TransClipping
554554
float Set_Opacity = saturate((inverseClipping + _Tweak_transparency));
555-
outColor = float4(finalColor, Set_Opacity);
555+
outColor = float4(finalColor, Set_Opacity * channelAlpha);
556556
#endif
557557

558558
#endif //#if defined(_SHADINGGRADEMAP)

0 commit comments

Comments
 (0)