Skip to content

Commit 6d6adac

Browse files
committed
Appied some fixes from Unity Toon Shader.
1 parent b5c8914 commit 6d6adac

8 files changed

+92
-125
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Changelog
22
**Universal Toon Shader [a.k.a. Unity-Chan Toon Shader]**
33

4-
## [2.3.0] - 2021/08/02
4+
## [2.3.0] - 2021/10/18
55
### Fixed
66
- The shader is compatible with SRP Batcher.
7+
- Outline pass is not compatible with VR when Single Pass Instanced rendering is chosen. Thanks to tangx246.
8+
- Removed some warnings.
79

810
## [2.2.3] - 2021/05/09
911
### Fixed

Runtime/Shaders/UniversalToon.shader

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
//UTS2/UniversalToon
2-
//v.2.2.3
1+
//UTS2/UniversalToon
2+
//v.2.3.0
33
//nobuyuki@unity3d.com
44
//toshiyuki@unity3d.com (Universal RP/HDRP)
55
//https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project
66
//(C)Unity Technologies Japan/UCL
7+
78
Shader "Universal Render Pipeline/Toon" {
89
Properties{
910
[HideInInspector] _simpleUI("SimpleUI", Int) = 0
11+
// Versioning of material to help for upgrading
1012
[HideInInspector] _utsVersionX("VersionX", Float) = 2
1113
[HideInInspector] _utsVersionY("VersionY", Float) = 3
1214
[HideInInspector] _utsVersionZ("VersionZ", Float) = 0
@@ -21,12 +23,13 @@ Shader "Universal Render Pipeline/Toon" {
2123
_StencilOpFail("Stencil Operation", Float) = 0
2224
[Enum(OFF,0,ON,1)] _TransparentEnabled("Transparent Mode", int) = 0
2325

24-
// These two are used in Lit shader.
26+
// These three are used in Lit shader.
2527
// inoorder to make the shaders compatible with SRP Batcher
2628
// The following decralation is indespensable as they are used in CBUFFER UnityPerMaterial block.
2729
//
2830
[HideInInspector] _Metallic("_Metallic", Range(0.0, 1.0)) = 0
2931
[HideInInspector] _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5
32+
[HideInInspector] _SpecColor("_SpecColor", Color) = (1, 1, 1, 1)
3033

3134

3235
// DoubleShadeWithFeather
@@ -50,6 +53,8 @@ Shader "Universal Render Pipeline/Toon" {
5053
_Tweak_transparency("Tweak_transparency", Range(-1, 1)) = 0
5154
// ClippingMask paramaters to Here.
5255

56+
57+
5358
_MainTex ("BaseMap", 2D) = "white" {}
5459
[HideInInspector] _BaseMap ("BaseMap", 2D) = "white" {}
5560
_BaseColor ("BaseColor", Color) = (1,1,1,1)

Runtime/Shaders/UniversalToonBody.hlsl

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,7 @@
3838
#define TEXTURE2D_SAMPLER2D(textureName, samplerName) Texture2D textureName; SamplerState samplerName
3939
TEXTURE2D_SAMPLER2D(_RaytracedHardShadow, sampler_RaytracedHardShadow);
4040
float4 _RaytracedHardShadow_TexelSize;
41-
uniform int UtsUseRaytracingShadow;
4241

43-
#ifdef _SYNTHESIZED_TEXTURE
44-
uniform sampler2D _MainTexSynthesized; uniform float4 _MainTexSynthesized_ST;
45-
uniform sampler2D _ShadowControlSynthesized; uniform float4 _ShadowControlSynthesized_ST;
46-
uniform sampler2D _HighColor_TexSynthesized; uniform float4 _HighColor_TexSynthesized_ST;
47-
uniform sampler2D _MatCap_SamplerSynthesized; uniform float4 _MatCap_SamplerSynthesized_ST;
48-
#endif
4942
//function to rotate the UV: RotateUV()
5043
//float2 rotatedUV = RotateUV(i.uv0, (_angular_Verocity*3.141592654), float2(0.5, 0.5), _Time.g);
5144
float2 RotateUV(float2 _uv, float _radian, float2 _piv, float _time)
@@ -196,7 +189,8 @@
196189
ShadowSamplingData shadowSamplingData = GetMainLightShadowSamplingData();
197190
half4 shadowParams = GetMainLightShadowParams();
198191
#if defined(UTS_USE_RAYTRACING_SHADOW)
199-
float4 screenPos = ComputeScreenPos(positionCS/ positionCS.w);
192+
float w = (positionCS.w == 0) ? 0.00001 : positionCS.w;
193+
float4 screenPos = ComputeScreenPos(positionCS/ w);
200194
return SAMPLE_TEXTURE2D(_RaytracedHardShadow, sampler_RaytracedHardShadow, screenPos);
201195
#endif
202196

@@ -206,7 +200,8 @@
206200
real AdditionalLightRealtimeShadowUTS(int lightIndex, float3 positionWS, float4 positionCS)
207201
{
208202
#if defined(UTS_USE_RAYTRACING_SHADOW)
209-
float4 screenPos = ComputeScreenPos(positionCS / positionCS.w);
203+
float w = (positionCS.w == 0) ? 0.00001 : positionCS.w;
204+
float4 screenPos = ComputeScreenPos(positionCS / w);
210205
return SAMPLE_TEXTURE2D(_RaytracedHardShadow, sampler_RaytracedHardShadow, screenPos);
211206
#endif // UTS_USE_RAYTRACING_SHADOW
212207

Runtime/Shaders/UniversalToonBodyDoubleShadeWithFeather.hlsl

Lines changed: 24 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@
1717

1818
float2 Set_UV0 = i.uv0;
1919
//v.2.0.6
20-
//float3 _NormalMap_var = UnpackNormal(tex2D(_NormalMap,TRANSFORM_TEX(Set_UV0, _NormalMap)));
2120

22-
float3 _NormalMap_var = UnpackNormalScale(tex2D(_NormalMap, TRANSFORM_TEX(Set_UV0, _NormalMap)), _BumpScale);
21+
float3 _NormalMap_var = UnpackNormalScale(SAMPLE_TEXTURE2D(_NormalMap, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _NormalMap)), _BumpScale);
2322

2423
float3 normalLocal = _NormalMap_var.rgb;
2524
float3 normalDirection = normalize(mul( normalLocal, tangentTransform )); // Perturbed normals
@@ -82,30 +81,18 @@
8281
UtsLight mainLight = GetMainUtsLightByID(i.mainLightID, i.posWorld.xyz, inputData.shadowCoord, i.positionCS);
8382

8483
half3 mainLightColor = GetLightColor(mainLight);
84+
float4 _MainTex_var = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _MainTex));
8585

86-
87-
#ifdef _SYNTHESIZED_TEXTURE
88-
float4 _MainTex_var = float4(tex2D(_MainTexSynthesized, TRANSFORM_TEX(Set_UV0, _MainTexSynthesized)).rgb, 1.0f);
89-
#else
90-
float4 _MainTex_var = tex2D(_MainTex, TRANSFORM_TEX(Set_UV0, _MainTex));
91-
#endif
9286
//v.2.0.4
9387
#if defined(_IS_CLIPPING_MODE)
9488
//DoubleShadeWithFeather_Clipping
95-
#ifdef _SYNTHESIZED_TEXTURE
96-
float4 _ClippingMask_var = tex2D(_MainTexSynthesized, TRANSFORM_TEX(Set_UV0, _MainTexSynthesized)).aaaa;
97-
#else
98-
float4 _ClippingMask_var = tex2D(_ClippingMask, TRANSFORM_TEX(Set_UV0, _ClippingMask));
99-
#endif
89+
float4 _ClippingMask_var = SAMPLE_TEXTURE2D(_ClippingMask, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _ClippingMask));
10090
float Set_Clipping = saturate((lerp( _ClippingMask_var.r, (1.0 - _ClippingMask_var.r), _Inverse_Clipping )+_Clipping_Level));
10191
clip(Set_Clipping - 0.5);
10292
#elif defined(_IS_CLIPPING_TRANSMODE) || defined(_IS_TRANSCLIPPING_ON)
10393
//DoubleShadeWithFeather_TransClipping
104-
#ifdef _SYNTHESIZED_TEXTURE
105-
float4 _ClippingMask_var = tex2D(_MainTexSynthesized, TRANSFORM_TEX(Set_UV0, _MainTexSynthesized)).aaaa;
106-
#else
107-
float4 _ClippingMask_var = tex2D(_ClippingMask, TRANSFORM_TEX(Set_UV0, _ClippingMask));
108-
#endif
94+
95+
float4 _ClippingMask_var = SAMPLE_TEXTURE2D(_ClippingMask, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _ClippingMask));
10996
float Set_MainTexAlpha = _MainTex_var.a;
11097
float _IsBaseMapAlphaAsClippingMask_var = lerp( _ClippingMask_var.r, Set_MainTexAlpha, _IsBaseMapAlphaAsClippingMask );
11198
float _Inverse_Clipping_var = lerp( _IsBaseMapAlphaAsClippingMask_var, (1.0 - _IsBaseMapAlphaAsClippingMask_var), _Inverse_Clipping );
@@ -151,46 +138,36 @@
151138
float3 Set_LightColor = lightColor.rgb;
152139
float3 Set_BaseColor = lerp( (_BaseColor.rgb*_MainTex_var.rgb), ((_BaseColor.rgb*_MainTex_var.rgb)*Set_LightColor), _Is_LightColor_Base );
153140
//v.2.0.5
154-
float4 _1st_ShadeMap_var = lerp(tex2D(_1st_ShadeMap,TRANSFORM_TEX(Set_UV0, _1st_ShadeMap)),_MainTex_var,_Use_BaseAs1st);
141+
float4 _1st_ShadeMap_var = lerp(SAMPLE_TEXTURE2D(_1st_ShadeMap,sampler_MainTex, TRANSFORM_TEX(Set_UV0, _1st_ShadeMap)),_MainTex_var,_Use_BaseAs1st);
155142
float3 Set_1st_ShadeColor = lerp( (_1st_ShadeColor.rgb*_1st_ShadeMap_var.rgb), ((_1st_ShadeColor.rgb*_1st_ShadeMap_var.rgb)*Set_LightColor), _Is_LightColor_1st_Shade );
156143
//v.2.0.5
157-
float4 _2nd_ShadeMap_var = lerp(tex2D(_2nd_ShadeMap,TRANSFORM_TEX(Set_UV0, _2nd_ShadeMap)),_1st_ShadeMap_var,_Use_1stAs2nd);
144+
float4 _2nd_ShadeMap_var = lerp(SAMPLE_TEXTURE2D(_2nd_ShadeMap, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _2nd_ShadeMap)),_1st_ShadeMap_var,_Use_1stAs2nd);
158145
float3 Set_2nd_ShadeColor = lerp( (_2nd_ShadeColor.rgb*_2nd_ShadeMap_var.rgb), ((_2nd_ShadeColor.rgb*_2nd_ShadeMap_var.rgb)*Set_LightColor), _Is_LightColor_2nd_Shade );
159146
float _HalfLambert_var = 0.5*dot(lerp( i.normalDir, normalDirection, _Is_NormalMapToBase ),lightDirection)+0.5;
160-
#ifdef _SYNTHESIZED_TEXTURE
161-
float4 _Set_2nd_ShadePosition_var = tex2D(_Set_2nd_ShadePosition, TRANSFORM_TEX(Set_UV0, _ShadowControlSynthesized)).gggg;
162-
float4 _Set_1st_ShadePosition_var = tex2D(_Set_1st_ShadePosition, TRANSFORM_TEX(Set_UV0, _ShadowControlSynthesized)).rrrr;
163-
#else //#ifdef _SYNTHESIZED_TEXTURE
147+
164148
float4 _Set_2nd_ShadePosition_var = tex2D(_Set_2nd_ShadePosition, TRANSFORM_TEX(Set_UV0, _Set_2nd_ShadePosition));
165149
float4 _Set_1st_ShadePosition_var = tex2D(_Set_1st_ShadePosition, TRANSFORM_TEX(Set_UV0, _Set_1st_ShadePosition));
166-
#endif //#ifdef _SYNTHESIZED_TEXTURE
167150
//v.2.0.6
168151
//Minmimum value is same as the Minimum Feather's value with the Minimum Step's value as threshold.
169152
float _SystemShadowsLevel_var = (shadowAttenuation*0.5)+0.5+_Tweak_SystemShadowsLevel > 0.001 ? (shadowAttenuation*0.5)+0.5+_Tweak_SystemShadowsLevel : 0.0001;
170153
float Set_FinalShadowMask = saturate((1.0 + ( (lerp( _HalfLambert_var, _HalfLambert_var*saturate(_SystemShadowsLevel_var), _Set_SystemShadowsToBase ) - (_BaseColor_Step-_BaseShade_Feather)) * ((1.0 - _Set_1st_ShadePosition_var.rgb).r - 1.0) ) / (_BaseColor_Step - (_BaseColor_Step-_BaseShade_Feather))));
171154
//
172155
//Composition: 3 Basic Colors as Set_FinalBaseColor
173156
float3 Set_FinalBaseColor = lerp(Set_BaseColor,lerp(Set_1st_ShadeColor,Set_2nd_ShadeColor,saturate((1.0 + ( (_HalfLambert_var - (_ShadeColor_Step-_1st2nd_Shades_Feather)) * ((1.0 - _Set_2nd_ShadePosition_var.rgb).r - 1.0) ) / (_ShadeColor_Step - (_ShadeColor_Step-_1st2nd_Shades_Feather))))),Set_FinalShadowMask); // Final Color
174-
#ifdef _SYNTHESIZED_TEXTURE
175-
float4 _Set_HighColorMask_var = tex2D(_HighColor_TexSynthesized, TRANSFORM_TEX(Set_UV0, _HighColor_TexSynthesized)).aaaa;
176-
#else
157+
177158
float4 _Set_HighColorMask_var = tex2D(_Set_HighColorMask, TRANSFORM_TEX(Set_UV0, _Set_HighColorMask));
178-
#endif
159+
179160
float _Specular_var = 0.5*dot(halfDirection,lerp( i.normalDir, normalDirection, _Is_NormalMapToHighColor ))+0.5; // Specular
180161
float _TweakHighColorMask_var = (saturate((_Set_HighColorMask_var.g+_Tweak_HighColorMaskLevel))*lerp( (1.0 - step(_Specular_var,(1.0 - pow(abs(_HighColor_Power),5)))), pow(abs(_Specular_var),exp2(lerp(11,1,_HighColor_Power))), _Is_SpecularToHighColor ));
181-
#ifdef _SYNTHESIZED_TEXTURE
182-
float4 _HighColor_Tex_var = float4(tex2D(_HighColor_TexSynthesized, TRANSFORM_TEX(Set_UV0, _HighColor_TexSynthesized)).rgb, 1.0f);
183-
#else
162+
184163
float4 _HighColor_Tex_var = tex2D(_HighColor_Tex, TRANSFORM_TEX(Set_UV0, _HighColor_Tex));
185-
#endif
164+
186165
float3 _HighColor_var = (lerp( (_HighColor_Tex_var.rgb*_HighColor.rgb), ((_HighColor_Tex_var.rgb*_HighColor.rgb)*Set_LightColor), _Is_LightColor_HighColor )*_TweakHighColorMask_var);
187166
//Composition: 3 Basic Colors and HighColor as Set_HighColor
188167
float3 Set_HighColor = (lerp(SATURATE_IF_SDR((Set_FinalBaseColor-_TweakHighColorMask_var)), Set_FinalBaseColor, lerp(_Is_BlendAddToHiColor,1.0,_Is_SpecularToHighColor) )+lerp( _HighColor_var, (_HighColor_var*((1.0 - Set_FinalShadowMask)+(Set_FinalShadowMask*_TweakHighColorOnShadow))), _Is_UseTweakHighColorOnShadow ));
189-
#ifdef _SYNTHESIZED_TEXTURE
190-
float4 _Set_RimLightMask_var = tex2D(_ShadowControlSynthesized, TRANSFORM_TEX(Set_UV0, _ShadowControlSynthesized)).a;
191-
#else
168+
192169
float4 _Set_RimLightMask_var = tex2D(_Set_RimLightMask, TRANSFORM_TEX(Set_UV0, _Set_RimLightMask));
193-
#endif
170+
194171
float3 _Is_LightColor_RimLight_var = lerp( _RimLightColor.rgb, (_RimLightColor.rgb*Set_LightColor), _Is_LightColor_RimLight );
195172
float _RimArea_var = abs(1.0 - dot(lerp( i.normalDir, normalDirection, _Is_NormalMapToRimLight ),viewDirection));
196173
float _RimLightPower_var = pow(_RimArea_var,exp2(lerp(3,0,_RimLight_Power)));
@@ -243,13 +220,10 @@
243220
_Rot_MatCapUV_var = _Rot_MatCapUV_var;
244221
}
245222

246-
#ifdef _SYNTHESIZED_TEXTURE
247-
float4 _MatCap_Sampler_var = tex2Dlod(_MatCap_SamplerSynthesized, float4(TRANSFORM_TEX(_Rot_MatCapUV_var, _MatCap_SamplerSynthesized), 0.0, _BlurLevelMatcap));
248-
float4 _Set_MatcapMask_var = tex2D(_MatCap_SamplerSynthesized, TRANSFORM_TEX(Set_UV0, _MatCap_SamplerSynthesized)).aaaa;
249-
#else
223+
250224
float4 _MatCap_Sampler_var = tex2Dlod(_MatCap_Sampler, float4(TRANSFORM_TEX(_Rot_MatCapUV_var, _MatCap_Sampler), 0.0, _BlurLevelMatcap));
251225
float4 _Set_MatcapMask_var = tex2D(_Set_MatcapMask, TRANSFORM_TEX(Set_UV0, _Set_MatcapMask));
252-
#endif //
226+
//
253227
//MatcapMask
254228
float _Tweak_MatcapMaskLevel_var = saturate(lerp(_Set_MatcapMask_var.g, (1.0 - _Set_MatcapMask_var.g), _Inverse_MatcapMask) + _Tweak_MatcapMaskLevel);
255229
//
@@ -317,38 +291,31 @@
317291
//
318292
float3 Set_BaseColor = lerp((_BaseColor.rgb*_MainTex_var.rgb*_LightIntensity), ((_BaseColor.rgb*_MainTex_var.rgb)*Set_LightColor), _Is_LightColor_Base);
319293
//v.2.0.5
320-
float4 _1st_ShadeMap_var = lerp(tex2D(_1st_ShadeMap, TRANSFORM_TEX(Set_UV0, _1st_ShadeMap)), _MainTex_var, _Use_BaseAs1st);
294+
float4 _1st_ShadeMap_var = lerp(SAMPLE_TEXTURE2D(_1st_ShadeMap, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _1st_ShadeMap)), _MainTex_var, _Use_BaseAs1st);
321295
float3 Set_1st_ShadeColor = lerp((_1st_ShadeColor.rgb*_1st_ShadeMap_var.rgb*_LightIntensity), ((_1st_ShadeColor.rgb*_1st_ShadeMap_var.rgb)*Set_LightColor), _Is_LightColor_1st_Shade);
322296
//v.2.0.5
323-
float4 _2nd_ShadeMap_var = lerp(tex2D(_2nd_ShadeMap, TRANSFORM_TEX(Set_UV0, _2nd_ShadeMap)), _1st_ShadeMap_var, _Use_1stAs2nd);
297+
float4 _2nd_ShadeMap_var = lerp(SAMPLE_TEXTURE2D(_2nd_ShadeMap, sampler_MainTex, TRANSFORM_TEX(Set_UV0, _2nd_ShadeMap)), _1st_ShadeMap_var, _Use_1stAs2nd);
324298
float3 Set_2nd_ShadeColor = lerp((_2nd_ShadeColor.rgb*_2nd_ShadeMap_var.rgb*_LightIntensity), ((_2nd_ShadeColor.rgb*_2nd_ShadeMap_var.rgb)*Set_LightColor), _Is_LightColor_2nd_Shade);
325299
float _HalfLambert_var = 0.5*dot(lerp(i.normalDir, normalDirection, _Is_NormalMapToBase), lightDirection) + 0.5;
326-
#ifdef _SYNTHESIZED_TEXTURE
327-
float4 _Set_2nd_ShadePosition_var = tex2D(_Set_2nd_ShadePosition, TRANSFORM_TEX(Set_UV0, _ShadowControlSynthesized)).g;
328-
float4 _Set_1st_ShadePosition_var = tex2D(_Set_1st_ShadePosition, TRANSFORM_TEX(Set_UV0, _ShadowControlSynthesized)).r;
329-
#else //#ifdef _SYNTHESIZED_TEXTURE
300+
330301
float4 _Set_2nd_ShadePosition_var = tex2D(_Set_2nd_ShadePosition, TRANSFORM_TEX(Set_UV0, _Set_2nd_ShadePosition));
331302
float4 _Set_1st_ShadePosition_var = tex2D(_Set_1st_ShadePosition, TRANSFORM_TEX(Set_UV0, _Set_1st_ShadePosition));
332-
#endif //#ifdef _SYNTHESIZED_TEXTURE
303+
333304
//v.2.0.5:
334305
float Set_FinalShadowMask = saturate((1.0 + ((lerp(_HalfLambert_var, (_HalfLambert_var*saturate(1.0 + _Tweak_SystemShadowsLevel)), _Set_SystemShadowsToBase) - (_BaseColor_Step - _BaseShade_Feather)) * ((1.0 - _Set_1st_ShadePosition_var.rgb).r - 1.0)) / (_BaseColor_Step - (_BaseColor_Step - _BaseShade_Feather))));
335306
//Composition: 3 Basic Colors as finalColor
336307
float3 finalColor = lerp(Set_BaseColor, lerp(Set_1st_ShadeColor, Set_2nd_ShadeColor, saturate((1.0 + ((_HalfLambert_var - (_ShadeColor_Step - _1st2nd_Shades_Feather)) * ((1.0 - _Set_2nd_ShadePosition_var.rgb).r - 1.0)) / (_ShadeColor_Step - (_ShadeColor_Step - _1st2nd_Shades_Feather))))), Set_FinalShadowMask); // Final Color
337308

338309
//v.2.0.6: Add HighColor if _Is_Filter_HiCutPointLightColor is False
339310

340-
#ifdef _SYNTHESIZED_TEXTURE
341-
float4 _Set_HighColorMask_var = tex2D(_HighColor_TexSynthesized, TRANSFORM_TEX(Set_UV0, _HighColor_TexSynthesized)).aaaa;
342-
#else
311+
343312
float4 _Set_HighColorMask_var = tex2D(_Set_HighColorMask, TRANSFORM_TEX(Set_UV0, _Set_HighColorMask));
344-
#endif
313+
345314
float _Specular_var = 0.5*dot(halfDirection, lerp(i.normalDir, normalDirection, _Is_NormalMapToHighColor)) + 0.5; // Specular
346315
float _TweakHighColorMask_var = (saturate((_Set_HighColorMask_var.g + _Tweak_HighColorMaskLevel))*lerp((1.0 - step(_Specular_var, (1.0 - pow(_HighColor_Power, 5)))), pow(_Specular_var, exp2(lerp(11, 1, _HighColor_Power))), _Is_SpecularToHighColor));
347-
#ifdef _SYNTHESIZED_TEXTURE
348-
float4 _HighColor_Tex_var = float4(tex2D(_HighColor_TexSynthesized, TRANSFORM_TEX(Set_UV0, _HighColor_TexSynthesized)).rgb, 1.0f);
349-
#else
316+
350317
float4 _HighColor_Tex_var = tex2D(_HighColor_Tex, TRANSFORM_TEX(Set_UV0, _HighColor_Tex));
351-
#endif
318+
352319
float3 _HighColor_var = (lerp((_HighColor_Tex_var.rgb*_HighColor.rgb), ((_HighColor_Tex_var.rgb*_HighColor.rgb)*Set_LightColor), _Is_LightColor_HighColor)*_TweakHighColorMask_var);
353320

354321
finalColor = finalColor + lerp(lerp(_HighColor_var, (_HighColor_var*((1.0 - Set_FinalShadowMask) + (Set_FinalShadowMask*_TweakHighColorOnShadow))), _Is_UseTweakHighColorOnShadow), float3(0, 0, 0), _Is_Filter_HiCutPointLightColor);

0 commit comments

Comments
 (0)