Files
Project-M/Packages/com.shadercrew.the-toon-shader.3d/Scripts/Shaders/xxSharedTTSDependecies/TheToonShaderFunctions3D.hlsl
T
kronic e362aaeb43 Import art/VFX asset packs + game-feel systems; normalize texture extensions to lowercase for LFS
Add BefourStudios SciFi environment packs, Gabriel Aguiar VFX, and the
ShaderCrew Toon Shader embedded packages, plus combat/enemy/wave/death
gameplay systems and supporting vault docs/screenshots.

Rename 11 vendor textures from uppercase .PNG/.HDR to lowercase so the
case-sensitive Git LFS filters (*.png/*.hdr) match on case-sensitive
filesystems (Linux CI, case-sensitive macOS), not just locally where
core.ignorecase=true masks the gap. Each .meta moved with its asset so
GUID references are preserved. All ~1000 binaries tracked via LFS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 22:50:43 -07:00

3330 lines
142 KiB
HLSL

#ifndef THETOONSHADER_FUNCTION
#define THETOONSHADER_FUNCTION
struct GeneralStylingData
{
half enableDistanceFade;
float distanceFadeStartDistance;
float distanceFadeFalloff;
half adjustDistanceFadeValue;
float distanceFadeValue;
};
struct StylingData
{
half isEnabled;
half style;
half type;
float4 color;
float rotation;
float rotationBetweenCells;
float density;
float offset;
float size;
float sizeControl;
float sizeFalloff;
float roundness;
float roundnessFalloff;
float hardness;
float opacity;
float opacityFalloff;
float dashEnabled;
float dashType;
float dashLength;
float dashDensity;
float dashTransitionPosition;
float dashTransitionSoftness;
float dashRoundness;
float dashOffset;
};
struct StylingRandomData
{
float enableRandomizer;
float perlinNoiseSize;
float perlinNoiseSeed;
float whiteNoiseSeed;
float noiseIntensity;
half spacingRandomMode;
float spacingRandomIntensity;
half opacityRandomMode;
float opacityRandomIntensity;
half lengthRandomMode;
float lengthRandomIntensity;
half hardnessRandomMode;
float hardnessRandomIntensity;
half thicknessRandomMode;
float thicknesshRandomIntensity;
};
struct AdditionalStylingSpecularData
{
};
struct AdditionalStylingRimData
{
};
struct PositionAndBlendingData
{
half position;
half blending;
half isInverted;
};
struct UVSets
{
float2 uv0;
float2 uv1;
float2 uv2;
float2 uv3;
};
struct UVSpaceData
{
half drawSpace;
half uvSet;
half coordinateSystem;
half polarCenterMode;
float4 polarCenter;
half sSCameraDistanceScaled;
half anchorSSToObjectsOrigin;
};
struct NoiseSampleData
{
float perlinNoise;
float perlinNoiseFloored;
float whiteNoise;
float whiteNoiseFloored;
};
struct RequiredNoiseData
{
bool perlinNoise;
bool perlinNoiseFloored;
bool whiteNoise;
bool whiteNoiseFloored;
};
#define UNITY_TWO_PI 6.28318530718f
float shiftLinear(
float ll0, float lll0
)
{
float llll0 = (ll0 - lll0) / max(lll0 + 1.0, 1e-6);
float lllll0 = (ll0 - lll0) / max(1.0 - lll0, 1e-6);
return lerp(llll0, lllll0, step(lll0, ll0));
}
float sum(
float3 lllllll0
)
{
return dot(lllllll0, float3(1, 1, 1));
}
float invLerp(
float lllllllll0, float llllllllll0, float ll0
)
{
return (ll0 - lllllllll0) / (llllllllll0 - lllllllll0);
}
float4 invLerp(
float4 lllllllll0, float4 llllllllll0, float4 ll0
)
{
return (ll0 - lllllllll0) / (llllllllll0 - lllllllll0);
}
float remap(
float lllllllllllllllll0, float llllllllllllllllll0, float lllllllllllllllllll0, float llllllllllllllllllll0, float ll0
)
{
float llllllllllllllllllllll0 = invLerp(lllllllllllllllll0, llllllllllllllllll0, ll0);
return lerp(lllllllllllllllllll0, llllllllllllllllllll0, llllllllllllllllllllll0);
}
float2 GetScreenUV(
float2 llllllllllllllllllllllll0, float lllllllllllllllllllllllll0
)
{
#if _URP
float4 llllllllllllllllllllllllll0 = TransformObjectToHClip(float3(0, 0, 0));
#else
float4 llllllllllllllllllllllllll0 = UnityObjectToClipPos(float3(0, 0, 0));
#endif
float2 llllllllllllllllllllllllllll0 = float2(llllllllllllllllllllllll0.x, llllllllllllllllllllllll0.y);
float lllllllllllllllllllllllllllll0 = _ScreenParams.y / _ScreenParams.x;
llllllllllllllllllllllllllll0.x -= llllllllllllllllllllllllll0.x / (llllllllllllllllllllllllll0.w);
llllllllllllllllllllllllllll0.y -= llllllllllllllllllllllllll0.y / (llllllllllllllllllllllllll0.w);
llllllllllllllllllllllllllll0.y *= lllllllllllllllllllllllllllll0;
llllllllllllllllllllllllllll0 *= 1 / lllllllllllllllllllllllll0;
llllllllllllllllllllllllllll0 *= llllllllllllllllllllllllll0.z;
return llllllllllllllllllllllllllll0;
};
float2 toPolar(
float2 lllllllllllllllllllllllllllllll0
)
{
float l1 = length(lllllllllllllllllllllllllllllll0);
float ll1 = atan2(lllllllllllllllllllllllllllllll0.y, lllllllllllllllllllllllllllllll0.x);
return float2(ll1 / UNITY_TWO_PI, l1);
}
float2 ConvertToDrawSpace(
#if _URP
InputData inputData,
#else
float3 llll1,
float3 lllll1,
#endif
float2 lllllllll1, UVSpaceData uvSpaceData, float4 llllllllllllllllllllllllllll0, UVSets uvSets
)
{
#if _URP
float3 llll1 = inputData.positionWS;
float3 lllll1 = inputData.normalWS;
#endif
if (uvSpaceData.drawSpace == 0)
{
if (uvSpaceData.uvSet == 0.0)
{
lllllllll1 = uvSets.uv0;
}
else if (uvSpaceData.uvSet == 1.0)
{
lllllllll1 = uvSets.uv1;
}
else if (uvSpaceData.uvSet == 2.0)
{
lllllllll1 = uvSets.uv2;
}
else if (uvSpaceData.uvSet == 3.0)
{
lllllllll1 = uvSets.uv3;
}
}
else if (uvSpaceData.drawSpace == 1)
{
float4 llllllllllllllllllllllll0 = mul(UNITY_MATRIX_VP, float4(llll1, 1.0));
float4 llllllllllllll1 = ComputeScreenPos(llllllllllllllllllllllll0);
lllllllll1 = ((llllllllllllll1.xy) / llllllllllllll1.w);
if (uvSpaceData.anchorSSToObjectsOrigin)
{
float4 lllllllllllllll1 = mul(UNITY_MATRIX_VP, float4(_WorldSpaceCameraPos, 1.0));
float2 llllllllllllllll1 = lllllllllllllll1.xy / lllllllllllllll1.w;
float2 lllllllllllllllll1 = llllllllllllllllllllllllllll0.xy;
lllllllll1 = lllllllll1 - lllllllllllllllll1;
}
}
else if (uvSpaceData.drawSpace == 2)
{
float3 lllllllllllllllllll1 = abs(lllll1);
if (lllllllllllllllllll1.x > lllllllllllllllllll1.y && lllllllllllllllllll1.x > lllllllllllllllllll1.z)
{
lllllllll1 = llll1.yz;
}
else if (lllllllllllllllllll1.y > lllllllllllllllllll1.z)
{
lllllllll1 = llll1.xz;
}
else
{
lllllllll1 = llll1.xy;
}
}
if (uvSpaceData.coordinateSystem == 1)
{
if (uvSpaceData.drawSpace == 1)
{
if (uvSpaceData.polarCenterMode == 0)
{
lllllllll1.xy -= uvSpaceData.polarCenter.xy;
}
else
{
uvSpaceData.polarCenter.a = 1;
float4 llllllllllllllllllll1 = mul(UNITY_MATRIX_VP, uvSpaceData.polarCenter);
float4 lllllllllllllllllllll1 = ComputeScreenPos(llllllllllllllllllll1);
float2 llllllllllllllllllllll1 = lllllllllllllllllllll1.xy / lllllllllllllllllllll1.w;
lllllllll1.xy -= llllllllllllllllllllll1;
}
}
else
{
lllllllll1.xy -= uvSpaceData.polarCenter.xy;
}
}
if (uvSpaceData.coordinateSystem == 1)
{
lllllllll1 = toPolar(lllllllll1);
}
if (uvSpaceData.drawSpace == 1)
{
if (uvSpaceData.sSCameraDistanceScaled == 1)
{
float3 lllllllllllllllllllllll1 = mul(UNITY_MATRIX_M, float4(0, 0, 0, 1.0)).xyz;
lllllllll1.xy *= distance(_WorldSpaceCameraPos, lllllllllllllllllllllll1);
}
float llllllllllllllllllllllll1 = _ScreenParams.x / _ScreenParams.y;
lllllllll1.x *= llllllllllllllllllllllll1;
}
return lllllllll1;
}
float CalculateSpecularMaskSkipDot(
float llllllllllllllllllllllllll1, float3 lllllllllllllllllllllllllll1, float llllllllllllllllllllllllllll1, float lllllllllllllllllllllllllllll1, float llllllllllllllllllllllllllllll1
)
{
float lllllllllllllllllllllllllllllll1 = 0;
float l2 = (1 - (llllllllllllllllllllllllllll1)) * 10;
llllllllllllllllllllllllll1 = max(llllllllllllllllllllllllll1, 0);
float ll2 = pow(llllllllllllllllllllllllll1, l2 * l2);
float lll2 = smoothstep(0.8, 0.8 + lllllllllllllllllllllllllllll1 / 1, ll2);
lllllllllllllllllllllllllllllll1 = lll2 * llllllllllllllllllllllllllllll1 * 5;
return lllllllllllllllllllllllllllllll1;
}
float CalculateSpecularMask(
float3 lllll2, float3 llllll2, float3 lllllllllllllllllllllllllll1, float llllllllllllllllllllllllllll1, float lllllllllllllllllllllllllllll1, float llllllllllllllllllllllllllllll1
)
{
float lllllllllllllllllllllllllllllll1 = 0;
float3 llllllllllll2 = normalize(llllll2 + lllllllllllllllllllllllllll1);
float llllllllllllllllllllllllll1 = dot(lllll2, llllllllllll2);
lllllllllllllllllllllllllllllll1 = CalculateSpecularMaskSkipDot(llllllllllllllllllllllllll1, lllllllllllllllllllllllllll1, llllllllllllllllllllllllllll1, lllllllllllllllllllllllllllll1, llllllllllllllllllllllllllllll1);
return lllllllllllllllllllllllllllllll1;
}
float CalculateRimMask(
float3 lllllllllllllllllllllllllll3, float3 lllllllllllllllllllllllllll1, float lllllllllllllllllllllllllllll3, float llllllllllllllllllllllllllllll3, float llllllllllllllllllllllllllllll1,
half l4, half ll4, half lll4, float llll4
)
{
float lllll4 = 0;
float llllll4 = saturate(1 - dot(lllllllllllllllllllllllllll1, lllllllllllllllllllllllllll3));
lllllllllllllllllllllllllllll3 = 1 - lllllllllllllllllllllllllllll3;
float lllllll4 = smoothstep(saturate(lllllllllllllllllllllllllllll3 - llllllllllllllllllllllllllllll3), lllllllllllllllllllllllllllll3, llllll4);
if ((l4 == 0 && llllllllllllllllllllllllllllll1 > 0.0 && ((llll4 >= 0 || ll4 == 0) || lll4 == 0))
|| (l4 == 1 && (llllllllllllllllllllllllllllll1 <= 0.0 || (llll4 <= 2 && ll4 == 1)))
|| l4 == 2)
{
if (l4 == 1)
{
float llllllll4 = llllllllllllllllllllllllllllll1;
if (ll4)
{
if (llllllllllllllllllllllllllllll1 > 0)
{
llllllllllllllllllllllllllllll1 *= llll4;
}
}
{
float lllllllll4 = 1 - abs(min(llllllllllllllllllllllllllllll1 * 2, 0));
if (llllllll4 > 0)
{
lllllllll4 = llll4;
}
lllll4 = lllllll4 * (1 - lllllllll4);
}
}
else if (l4 == 0)
{
lllll4 = lllllll4 * (llllllllllllllllllllllllllllll1 * 2) * (llll4);
}
else if (l4 == 2)
{
lllll4 = lllllll4;
}
}
return lllll4;
}
float CalculateRimMask2(
float3 lllllllllllllllllllllllllll3, float3 lllllllllllllllllllllllllll1, float lllllllllllllllllllllllllllll3, float llllllllllllllllllllllllllllll3, float llllllllllllllllllllllllllllll1,
half l4, half ll4, half lll4, float llll4
)
{
float lllll4 = 0;
float llllll4 = saturate(1 - dot(lllllllllllllllllllllllllll1, lllllllllllllllllllllllllll3));
lllllllllllllllllllllllllllll3 = 1 - lllllllllllllllllllllllllllll3;
float lllllll4 = smoothstep(saturate(lllllllllllllllllllllllllllll3 - llllllllllllllllllllllllllllll3), lllllllllllllllllllllllllllll3, llllll4);
if ((l4 == 0 && llllllllllllllllllllllllllllll1 > 0.0 && ((llll4 >= 0 || ll4 == 0) || lll4 == 0))
|| (l4 == 1 && (llllllllllllllllllllllllllllll1 <= 0.0 || (llll4 <= 2 && ll4 == 1)))
|| l4 == 2)
{
if (l4 == 1)
{
if (ll4)
{
lllll4 = lllllll4 * (1 - llll4);
}
else
{
float lllllllll4 = 1 - abs(min(llllllllllllllllllllllllllllll1 * 2, 0));
float lllllll0 = lerp(0, lllllllll4 * 4, llllllllllllllllllllllllllllll3);
lllll4 = lllllll4 * (1 - lllllllll4);
}
}
else if (l4 == 2)
{
lllll4 = lllllll4;
}
else
{
lllll4 = lllllll4 * (llllllllllllllllllllllllllllll1 * 2) * (llll4);
}
}
return lllll4;
}
float2 RotateUV(
float2 lllllllll1, float ll1
)
{
float llllllllllllllllllllllllllll4 = radians(ll1);
float lllllllllllllllllllllllllllll4 = cos(llllllllllllllllllllllllllll4);
float llllllllllllllllllllllllllllll4 = sin(llllllllllllllllllllllllllll4);
float2 lllllllllllllllllllllllllllllll4;
lllllllllllllllllllllllllllllll4.x = lllllllll1.x * lllllllllllllllllllllllllllll4 - lllllllll1.y * llllllllllllllllllllllllllllll4;
lllllllllllllllllllllllllllllll4.y = lllllllll1.x * llllllllllllllllllllllllllllll4 + lllllllll1.y * lllllllllllllllllllllllllllll4;
return lllllllllllllllllllllllllllllll4;
}
float2 RotateUVRadians(
float2 lllllllll1, float lll5
)
{
float llllllllllllllllllllllllllll4 = lll5;
float lllllllllllllllllllllllllllll4 = cos(llllllllllllllllllllllllllll4);
float llllllllllllllllllllllllllllll4 = sin(llllllllllllllllllllllllllll4);
float2 lllllllllllllllllllllllllllllll4;
lllllllllllllllllllllllllllllll4.x = lllllllll1.x * lllllllllllllllllllllllllllll4 - lllllllll1.y * llllllllllllllllllllllllllllll4;
lllllllllllllllllllllllllllllll4.y = lllllllll1.x * llllllllllllllllllllllllllllll4 + lllllllll1.y * lllllllllllllllllllllllllllll4;
return lllllllllllllllllllllllllllllll4;
}
float CalculateHatchingDashContinuity(
float lllllllll5, float llllllllll5, float lllllllllll5
)
{
float llllllllllll5 = saturate(lllllllllll5);
float lllllllllllll5 = saturate(lllllllll5);
float llllllllllllll5 = max(llllllllll5, 0.0001);
float lllllllllllllll5 = saturate(lllllllllllll5 + llllllllllllll5);
float llllllllllllllll5 = lllllllllllllll5 - lllllllllllll5;
float lllllllllllllllll5 = 0.0;
if (llllllllllllllll5 <= 0.0001)
{
lllllllllllllllll5 = step(lllllllllllll5, llllllllllll5);
}
else
{
lllllllllllllllll5 = smoothstep(lllllllllllll5, lllllllllllllll5, llllllllllll5);
}
lllllllllllllllll5 *= lllllllllllllllll5;
return 1.0 - lllllllllllllllll5;
}
float CalculateHatchingDashSafeSpacingHalfWidth(
float lllllllllllllllllll5, float llllllllllllllllllll5, float lllllllllllllllllllll5, half llllllllllllllllllllll5
)
{
float lllllllllllllllllllllll5 = max(lllllllllllllllllll5, 0.0);
float llllllllllllllllllllllll5 = saturate(llllllllllllllllllll5);
float lllllllllllllllllllllllll5 = lllllllllllllllllll5 * (1.0 - llllllllllllllllllllllll5);
float llllllllllllllllllllllllll5 = llllllllllllllllllllll5 ? max(lllllllllllllllllllll5, 0.0) : 0.0;
float lllllllllllllllllllllllllll5 = 0.002;
lllllllllllllllllllllll5 += max(lllllllllllllllllllllllll5, llllllllllllllllllllllllll5) + lllllllllllllllllllllllllll5;
return min(lllllllllllllllllllllll5, 0.499);
}
float CalculateHatching1DMaskFromDistance(
float lllllllllllllllllllllllllllll5, float llllllllllllllllllllllllllllll5, float llllllllllllllllllll5, float l6, float ll6, float lll6, half llllllllllllllllllllll5
)
{
if (llllllllllllllllllllllllllllll5 <= 0.0)
{
return 0.0;
}
float llllllllllllllllllllllll5 = saturate(llllllllllllllllllll5);
float llllll6 = 1.0 - step(llllllllllllllllllllllllllllll5, lllllllllllllllllllllllllllll5);
float lllllll6 = llllllllllllllllllllllllllllll5 * (1.0 - llllllllllllllllllllllll5);
float llllllll6 = llllllllllllllllllllll5 ? max(lll6, 0.0) : 0.0;
if (abs(llllllllllllllllllllllllllllll5 - l6) < 0.00001 && abs(ll6 - 1.0) < 0.00001)
{
llllllll6 = 0.0;
}
if (!llllllllllllllllllllll5 || llllllll6 <= 0.0)
{
if (lllllll6 <= 0.000001)
{
return llllll6;
}
return 1.0 - smoothstep(llllllllllllllllllllllllllllll5 - lllllll6, llllllllllllllllllllllllllllll5, lllllllllllllllllllllllllllll5);
}
float lllllllll6 = max(lllllll6, min(llllllll6, llllllllllllllllllllllllllllll5));
if (lllllllll6 <= 0.000001)
{
return llllll6;
}
return 1.0 - smoothstep(llllllllllllllllllllllllllllll5 - lllllllll6, llllllllllllllllllllllllllllll5, lllllllllllllllllllllllllllll5);
}
float ApplyHatchingDashMode(
float lllllllllll6, float llllllllllll6, float lllllllllllll6, float llllllllllllll6, float lllllllllllllll6, float llllllllllllllllllll5,
float lllllllllllllllllllll5, float llllllllllllllllll6, float lllllllllllllllllll6, float llllllllllllllllllll6, half llllllllllllllllllllll5
)
{
if (llllllllllllll6 <= 0.0)
{
return lllllllllll6;
}
float llllllllllllllllllllll6 = max(0.0, 0.5 - lllllllllllllll6);
float lllllllllllllllllllllll6 = 0.0;
if (llllllllllllllllllllll6 > 0.00001)
{
lllllllllllllllllllllll6 = smoothstep(0.0, 0.001, llllllllllllllllllllll6);
}
if (lllllllllllllllllll6 < 0.5)
{
if (lllllllllllllllllllllll6 <= 0.0)
{
return lllllllllll6;
}
float llllllllllllllllllllllll6 = CalculateHatching1DMaskFromDistance(
lllllllllllll6,
lllllllllllllll6,
llllllllllllllllllll5,
-1.0,
0.0,
llllllllllllllllll6,
llllllllllllllllllllll5
);
float lllllllllllllllllllllllll6 = lllllllllll6 * llllllllllllllllllllllll6;
return lerp(lllllllllll6, lllllllllllllllllllllllll6, lllllllllllllllllllllll6);
}
float llllllllllllllllllllllllll6 = remap(
0.0, 1.0,
max(min(llllllllllllll6, max(lllllllllllllll6, 0.0001)), 0.0001),
0.0001,
saturate(llllllllllllllllllll5)
);
float lllllllllllllllllllllllllll6 = llllllllllllllllllllll5 ? max(llllllllllllllllll6, 0.0) : 0.0;
llllllllllllllllllllllllll6 = max(llllllllllllllllllllllllll6, lllllllllllllllllllllllllll6 + 0.0001);
float llllllllllllllllllllllllllll6 = 0.5 + llllllllllllllllllllllllll6;
float lllllllllllllllllllllllllllll6 = lerp(llllllllllllllllllllllllllll6, lllllllllllllll6, lllllllllllllllllllllll6);
float llllllllllllllllllllllllllllll6 = llllllllllllllllllll6 * lllllllllllllllllllllll6;
float2 lllllllllllllllllllllllllllllll6 = float2(lllllllllllll6, llllllllllll6);
float2 llllllllllllllllllllllllllllll5 = float2(max(lllllllllllllllllllllllllllll6, 0.0001), max(llllllllllllll6, 0.0001));
float ll7 = max(min(llllllllllllllllllllllllllllll5.x, llllllllllllllllllllllllllllll5.y), 0.0001);
float lllllllllllllllllllll3 = ll7 * saturate(llllllllllllllllllllllllllllll6);
lllllllllllllllllllll3 = min(lllllllllllllllllllll3, min(llllllllllllllllllllllllllllll5.x, llllllllllllllllllllllllllllll5.y));
float2 llll7 = abs(lllllllllllllllllllllllllllllll6) - (llllllllllllllllllllllllllllll5 - lllllllllllllllllllll3);
float lllll7 = length(max(llll7, 0.0)) + min(max(llll7.x, llll7.y), 0.0) - lllllllllllllllllllll3;
float llllllllllllllllllllllll5 = saturate(llllllllllllllllllll5);
float llllll6 = 1.0 - step(0.0, lllll7);
float lllllll6 = remap(
0.0, 1.0,
ll7,
0.0,
llllllllllllllllllllllll5
);
if (!llllllllllllllllllllll5)
{
if (lllllll6 <= 0.000001)
{
return llllll6;
}
return 1.0 - smoothstep(0.0, lllllll6, lllll7);
}
float2 lllllllll7 = float2(max(llllllllllllllllll6, 0.0), max(lllllllllllllllllllll5, 0.0));
float2 llllllllll7;
if (llll7.x > 0.0 && llll7.y > 0.0)
{
float2 lllllllllll7 = max(llll7, 0.0);
llllllllll7 = lllllllllll7 / max(length(lllllllllll7), 0.0001);
}
else
{
llllllllll7 = (llll7.x > llll7.y) ? float2(1.0, 0.0) : float2(0.0, 1.0);
}
float llllllll6 = min(dot(llllllllll7, lllllllll7), ll7);
if (llllllll6 <= 0.000001)
{
if (lllllll6 <= 0.000001)
{
return llllll6;
}
return 1.0 - smoothstep(0.0, lllllll6, lllll7);
}
if (lllllll6 >= llllllll6)
{
return 1.0 - smoothstep(0.0, lllllll6, lllll7);
}
float lllllllllllll7 = saturate(lllllll6 / llllllll6);
float llllllllllllll7 = lerp(-llllllll6, 0.0, lllllllllllll7);
float lllllllllllllll7 = llllllll6;
return 1.0 - smoothstep(llllllllllllll7, lllllllllllllll7, lllll7);
}
NoiseSampleData SampleNoiseData(
float2 lllllllll1, StylingData stylingData, StylingRandomData stylingRandomData, RequiredNoiseData requiredNoiseData,
#ifdef USE_UNITY_TEXTURE_2D_TYPE
UnityTexture2D lllllllllllllllll7, UnityTexture2D llllllllllllllllll7
#else
sampler2D lllllllllllllllll7, sampler2D llllllllllllllllll7
#endif
)
{
NoiseSampleData noiseSampleData;
if (stylingRandomData.enableRandomizer == 1)
{
if (stylingData.style == 1)
{
if (fmod(floor(lllllllll1.y * stylingData.density), 2) == 0)
{
lllllllll1.x += stylingData.offset / stylingData.density;
}
}
float lllllllllllllllllll7 = 0;
if (requiredNoiseData.perlinNoiseFloored == 1)
{
float2 llllllllllllllllllll7 = lllllllll1;
llllllllllllllllllll7.x = floor(lllllllll1.x * stylingData.density) / stylingData.density;
if (stylingData.style == 1)
{
llllllllllllllllllll7.y = floor(lllllllll1.y * stylingData.density) / stylingData.density;
}
llllllllllllllllllll7 *= stylingRandomData.perlinNoiseSize;
lllllllllllllllllll7 = tex2Dlod(lllllllllllllllll7, float4(llllllllllllllllllll7, 0.0, 0.0)).x;
}
float lllllllllllllllllllll7 = 0;
if (requiredNoiseData.perlinNoise == 1)
{
float2 llllllllllllllllllllll7 = lllllllll1 * stylingRandomData.perlinNoiseSize;
lllllllllllllllllllll7 = tex2Dlod(lllllllllllllllll7, float4(llllllllllllllllllllll7, 0.0, 0.0)).x;
}
float lllllllllllllllllllllll7 = 0;
if (requiredNoiseData.whiteNoise == 1)
{
float2 llllllllllllllllllllllll7 = lllllllll1;
llllllllllllllllllllllll7.x = floor(lllllllll1.x * stylingData.density) / stylingData.density;
if (stylingData.style == 0)
{
llllllllllllllllllllllll7.y = 0.1;
}
else if (stylingData.style == 1)
{
llllllllllllllllllllllll7.y = floor(lllllllll1.y * stylingData.density) / stylingData.density;
}
lllllllllllllllllllllll7 = tex2Dlod(llllllllllllllllll7, float4(llllllllllllllllllllllll7, 0.0, 0.0)).x;
}
float lllllllllllllllllllllllll7 = 0;
if (requiredNoiseData.whiteNoiseFloored == 1)
{
float2 llllllllllllllllllllllllll7 = lllllllll1;
llllllllllllllllllllllllll7.x = floor(lllllllll1.x * stylingData.density) / stylingData.density;
if (stylingData.style == 0)
{
llllllllllllllllllllllllll7.y = 0.1;
}
else if (stylingData.style == 1)
{
llllllllllllllllllllllllll7.y = 0.1;
}
lllllllllllllllllllllllll7 = tex2Dlod(llllllllllllllllll7, float4(llllllllllllllllllllllllll7, 0.0, 0.0)).x;
}
noiseSampleData.perlinNoise = lllllllllllllllllllll7;
noiseSampleData.perlinNoiseFloored = lllllllllllllllllll7;
noiseSampleData.whiteNoise = lllllllllllllllllllllll7;
noiseSampleData.whiteNoiseFloored = lllllllllllllllllllllllll7;
}
else
{
noiseSampleData.perlinNoise = 0;
noiseSampleData.perlinNoiseFloored = 0;
noiseSampleData.whiteNoise = 0;
noiseSampleData.whiteNoiseFloored = 0;
}
return noiseSampleData;
}
float Hatching(
float ll0, float2 lllllllll1, StylingData hatchingData, StylingRandomData stylingRandomData, NoiseSampleData noiseSampleData, half llllllllllllllllllllllllllllll7
)
{
ll0 = 1 - ll0;
float2 lllllllllllllllllllllllllllllll7 = lllllllll1;
float lllllllllllllllllll5 = hatchingData.size / 2;
float ll8 = lllllllllllllllllllllllllllllll7.x;
float lll8 = lllllllllllllllllllllllllllllll7.y;
float llll8 = max(hatchingData.dashDensity, 0.0001);
ll8 *= hatchingData.density;
lll8 *= llll8;
float lllll8 = floor(ll8);
float llllll8 = lll8;
float lllllll8 = llllllllllllllllllllllllllllll7 ? fwidth(ll8) : 0.0;
if (stylingRandomData.enableRandomizer == 1)
{
ll8 += noiseSampleData.perlinNoise * stylingRandomData.noiseIntensity;
lll8 += noiseSampleData.perlinNoise * stylingRandomData.noiseIntensity;
llllll8 = lll8;
lllllll8 = llllllllllllllllllllllllllllll7 ? fwidth(ll8) : 0.0;
float llllllll8 = 0;
if (stylingRandomData.thicknessRandomMode == 0)
{
llllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.thicknessRandomMode == 1)
{
llllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllll8 = ((noiseSampleData.perlinNoiseFloored) + noiseSampleData.whiteNoise) / 2;
}
llllllll8 *= stylingRandomData.thicknesshRandomIntensity;
float lllllllll8 = remap(0, 1, 0.0, lllllllllllllllllll5, llllllll8);
lllllllllllllllllll5 -= lllllllll8;
float llllllllll8 = 0;
if (stylingRandomData.spacingRandomMode == 0)
{
llllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.spacingRandomMode == 1)
{
llllllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllllll8 = ((noiseSampleData.perlinNoiseFloored) + noiseSampleData.whiteNoise) / 2;
}
float lllllllllll8 = lllllllllllllllllll5;
if (hatchingData.style == 0 && hatchingData.dashEnabled == 1 && hatchingData.dashType == 1)
{
lllllllllll8 = CalculateHatchingDashSafeSpacingHalfWidth(
lllllllllllllllllll5,
hatchingData.hardness,
lllllll8,
llllllllllllllllllllllllllllll7
);
}
float llllllllllll8 = remap(0, 1, -0.5 + lllllllllll8, 0.5 - lllllllllll8, llllllllll8);
ll8 += llllllllllll8 * stylingRandomData.spacingRandomIntensity * saturate(1 - stylingRandomData.noiseIntensity);
}
ll8 = abs(frac(ll8) - 0.5);
float lllllllllll5 = 0;
if (stylingRandomData.enableRandomizer == 1)
{
float llllllllllllll8 = 0;
if (stylingRandomData.lengthRandomMode == 0)
{
llllllllllllll8 = noiseSampleData.whiteNoise * saturate(1 - stylingRandomData.noiseIntensity);
}
else if (stylingRandomData.lengthRandomMode == 1)
{
llllllllllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + (noiseSampleData.whiteNoise * saturate(1 - stylingRandomData.noiseIntensity))) / 2);
}
float lllllllllllllll8 = llllllllllllll8 * stylingRandomData.lengthRandomIntensity;
lllllllllll5 = remap(0, 1 - lllllllllllllll8, 0, 1, ll0);
}
else
{
lllllllllll5 = remap(0, 1, 0, 1, ll0);
}
float llllllllllllllll8 = smoothstep(min(1 - hatchingData.sizeFalloff, 0.99), 1, lllllllllll5);
llllllllllllllll8 = max(lllllllllllllllllll5 - llllllllllllllll8, 0);
float lllllllllllllllll8 = hatchingData.hardness;
if (stylingRandomData.enableRandomizer == 1)
{
float llllllllllllllllll8 = 0;
if (stylingRandomData.hardnessRandomMode == 0)
{
llllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.hardnessRandomMode == 1)
{
llllllllllllllllll8 = noiseSampleData.perlinNoiseFloored * 5;
}
else
{
llllllllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + noiseSampleData.whiteNoise) / 2) * 5;
}
lllllllllllllllll8 = min(saturate(hatchingData.hardness - llllllllllllllllll8 * stylingRandomData.hardnessRandomIntensity), hatchingData.hardness);
}
float llllllllllll6 = ll8;
ll8 = CalculateHatching1DMaskFromDistance(
llllllllllll6,
llllllllllllllll8,
lllllllllllllllll8,
lllllllllllllllllll5,
hatchingData.size,
lllllll8,
llllllllllllllllllllllllllllll7
);
if (hatchingData.style == 0 && hatchingData.dashEnabled == 1)
{
float llllllllllllllllllll8 = CalculateHatchingDashContinuity(
hatchingData.dashTransitionPosition,
hatchingData.dashTransitionSoftness,
lllllllllll5
);
float lllllllllllllllllllll8 = saturate(hatchingData.dashLength) * 0.5;
float lllllllllllllll6 = lerp(lllllllllllllllllllll8, 0.5, llllllllllllllllllll8);
lll8 += lllll8 * saturate(hatchingData.dashOffset);
float lllllllllllllllllllllll8 = llllllllllllllllllllllllllllll7 ? fwidth(llllll8) : 0.0;
float lllllllllllll6 = abs(frac(lll8) - 0.5);
ll8 = ApplyHatchingDashMode(
ll8,
llllllllllll6,
lllllllllllll6,
llllllllllllllll8,
lllllllllllllll6,
lllllllllllllllll8,
lllllll8,
lllllllllllllllllllllll8,
hatchingData.dashType,
hatchingData.dashRoundness,
llllllllllllllllllllllllllllll7
);
}
if (stylingRandomData.enableRandomizer == 1)
{
float lllllllllllllllllllllllll8;
if (stylingRandomData.opacityRandomMode == 0)
{
lllllllllllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.opacityRandomMode == 1)
{
lllllllllllllllllllllllll8 = noiseSampleData.perlinNoiseFloored * 5;
}
else
{
lllllllllllllllllllllllll8 = ((noiseSampleData.perlinNoiseFloored * 5) + noiseSampleData.whiteNoise) / 2;
lllllllllllllllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + noiseSampleData.whiteNoise) / 2) * 5;
}
ll8 = saturate(ll8 - (lllllllllllllllllllllllll8 * stylingRandomData.opacityRandomIntensity));
}
float llllllllllllllllllllllllll8 = smoothstep(min(1 - hatchingData.opacityFalloff, 0.99), 1, lllllllllll5);
ll8 *= 1 - llllllllllllllllllllllllll8;
ll8 *= hatchingData.opacity;
return ll8;
}
float Halftones(
float ll0, float2 lllllllll1, StylingData halftonesData, StylingRandomData stylingRandomData, NoiseSampleData noiseSampleData
)
{
float2 llllllllllllllllllllllllllllll8 = lllllllll1;
llllllllllllllllllllllllllllll8 *= halftonesData.density;
if (stylingRandomData.enableRandomizer == 1)
{
llllllllllllllllllllllllllllll8 += noiseSampleData.perlinNoise * stylingRandomData.noiseIntensity;
}
if (fmod(floor(llllllllllllllllllllllllllllll8.y), 2) == 0)
{
llllllllllllllllllllllllllllll8.x += halftonesData.offset;
}
if (stylingRandomData.enableRandomizer == 1)
{
float llllllllllllll8 = 0;
if (stylingRandomData.lengthRandomMode == 0)
{
llllllllllllll8 = noiseSampleData.whiteNoiseFloored * saturate(1 - stylingRandomData.noiseIntensity);
}
else if (stylingRandomData.lengthRandomMode == 1)
{
llllllllllllll8 = noiseSampleData.perlinNoise;
}
else
{
llllllllllllll8 = ((noiseSampleData.perlinNoise + (noiseSampleData.whiteNoise * saturate(1 - stylingRandomData.noiseIntensity))) / 2);
}
float lllllllllllllll8 = llllllllllllll8 * stylingRandomData.lengthRandomIntensity;
ll0 -= lllllllllllllll8;
}
float ll9 = halftonesData.size;
if (halftonesData.sizeControl == 1)
{
ll9 *= ll0;
}
else
{
float lll9 = smoothstep(min(1 - halftonesData.sizeFalloff, 1), 1, (1 - ll0));
ll9 = max(ll9 - lll9, 0);
}
ll9 /= 2;
if (stylingRandomData.enableRandomizer == 1)
{
float llllllll8 = 0;
if (stylingRandomData.thicknessRandomMode == 0)
{
llllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.thicknessRandomMode == 1)
{
llllllll8 = noiseSampleData.perlinNoise;
}
else
{
llllllll8 = ((noiseSampleData.perlinNoise) + noiseSampleData.whiteNoise) / 2;
}
float lllll9 = remap(0, 1, 0.0, ll9, llllllll8 * stylingRandomData.thicknesshRandomIntensity);
ll9 -= lllll9;
}
float llllll9 = 1 - halftonesData.roundness;
float lllllll9 = smoothstep(halftonesData.roundnessFalloff, 1, 1 - ll0);
llllll9 = max(llllll9 - lllllll9 * 4, 0);
llllll9 /= 2;
if (stylingRandomData.enableRandomizer == 1)
{
float llllllllll8 = 0;
if (stylingRandomData.spacingRandomMode == 0)
{
llllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.spacingRandomMode == 1)
{
llllllllll8 = noiseSampleData.perlinNoise;
}
else
{
llllllllll8 = ((noiseSampleData.perlinNoise) + noiseSampleData.whiteNoise) / 2;
}
float llllllllllll8 = remap(0, 1, -0.5 + ll9, 0.5 - ll9, llllllllll8);
llllllllllllllllllllllllllllll8 += llllllllllll8 * stylingRandomData.spacingRandomIntensity * saturate(1 - stylingRandomData.noiseIntensity);
}
float llllllllll9 = halftonesData.hardness;
if (stylingRandomData.enableRandomizer == 1)
{
float llllllllllllllllll8 = 0;
if (stylingRandomData.hardnessRandomMode == 0)
{
llllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.hardnessRandomMode == 1)
{
llllllllllllllllll8 = noiseSampleData.perlinNoise * 5;
}
else
{
llllllllllllllllll8 = ((noiseSampleData.perlinNoise + noiseSampleData.whiteNoise) / 2) * 5;
}
llllllllll9 = min(saturate(halftonesData.hardness - llllllllllllllllll8 * stylingRandomData.hardnessRandomIntensity), halftonesData.hardness);
}
float llllllllllll9 = remap(0, 1, 0, ll9, llllllllll9);
float l1 = length(max(abs(frac(llllllllllllllllllllllllllllll8) - 0.5) - llllll9 * llllllllllll9 * 2, 0.0)) + llllll9 * llllllllllll9 * 2;
float llllllllllllll9 = smoothstep(llllllllllll9, ll9, l1);
llllllllllllll9 = 1 - llllllllllllll9;
if (stylingRandomData.enableRandomizer == 1)
{
float lllllllllllllllllllllllll8;
if (stylingRandomData.opacityRandomMode == 0)
{
lllllllllllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomData.opacityRandomMode == 1)
{
lllllllllllllllllllllllll8 = noiseSampleData.perlinNoise * 5;
}
else
{
lllllllllllllllllllllllll8 = ((noiseSampleData.perlinNoise * 5) + noiseSampleData.whiteNoise) / 2;
lllllllllllllllllllllllll8 = ((noiseSampleData.perlinNoise + noiseSampleData.whiteNoise) / 2) * 5;
}
llllllllllllll9 = saturate(llllllllllllll9 - (lllllllllllllllllllllllll8 * stylingRandomData.opacityRandomIntensity));
}
float llllllllllllllll9 = smoothstep(min(1 - halftonesData.opacityFalloff, 0.99), 1, 1 - ll0);
if (halftonesData.type == 1 || halftonesData.opacityFalloff != 0)
{
llllllllllllll9 *= 1 - llllllllllllllll9;
}
llllllllllllll9 *= halftonesData.opacity;
llllllllllllll9 = 1 - llllllllllllll9;
return llllllllllllll9;
}
void DoBlending(
inout float4 lllllllllllllllll9, float ll0, float lllllllllllllllllll9, float4 llllllllllllllllllll9
)
{
if (lllllllllllllllllll9 == 0)
{
lllllllllllllllll9 = lerp(lllllllllllllllll9, llllllllllllllllllll9, ll0);
}
else if (lllllllllllllllllll9 == 1)
{
lllllllllllllllll9 += (llllllllllllllllllll9 * ll0);
}
else if (lllllllllllllllllll9 == 2)
{
lllllllllllllllll9 *= 1 - ll0 + (llllllllllllllllllll9 * ll0);
}
else if (lllllllllllllllllll9 == 3)
{
lllllllllllllllll9 -= (llllllllllllllllllll9 * ll0);
}
else if (lllllllllllllllllll9 == 4)
{
lllllllllllllllll9 += llllllllllllllllllll9 * (1.0 - lllllllllllllllll9) * ll0;
}
else if (lllllllllllllllllll9 == 5)
{
float4 lllllllllllllllllllll9 = 2.0 * llllllllllllllllllll9 - 1.0;
float4 llllllllllllllllllllll9 = lllllllllllllllll9 * lllllllllllllllllllll9;
float4 lllllllllllllllllllllll9 = (1.0 - lllllllllllllllll9) * lllllllllllllllllllll9;
lllllllllllllllll9 += lerp(llllllllllllllllllllll9, lllllllllllllllllllllll9, step(0.5, lllllllllllllllll9)) * ll0;
}
else if (lllllllllllllllllll9 == 6)
{
lllllllllllllllll9 += (2.0 * llllllllllllllllllll9 - 1.0) * lllllllllllllllll9 * (1.0 - lllllllllllllllll9) * ll0;
}
else if (lllllllllllllllllll9 == 7)
{
lllllllllllllllll9 += max(llllllllllllllllllll9 - lllllllllllllllll9, 0.0) * ll0;
}
else if (lllllllllllllllllll9 == 8)
{
lllllllllllllllll9 += min(llllllllllllllllllll9 - lllllllllllllllll9, 0.0) * ll0;
}
else if (lllllllllllllllllll9 == 9)
{
float4 llllllllllllllllllllllll9 = lllllllllllllllll9 / max(llllllllllllllllllll9, 0.0001);
lllllllllllllllll9 = lerp(lllllllllllllllll9, llllllllllllllllllllllll9, ll0);
}
}
void DoToonShading(
#if _URP
InputData inputData,
SurfaceData surface,
#else
#if _USESPECULAR || _USESPECULARWORKFLOW || _SPECULARFROMMETALLIC
SurfaceOutputStandardSpecular o,
#elif _BDRFLAMBERT || _BDRF3 || _SIMPLELIT
SurfaceOutput o,
#else
SurfaceOutputStandard o,
#endif
UnityGI gi,
#if !_PASSFORWARDADD
UnityGIInput giInput,
#endif
#endif
ShaderData d,
#if _URP
#if UNITY_VERSION >= 202120
float3 lllllllllllllllllllllllllllllll9,
#endif
#endif
inout float4 lllllllllllllllll9,
int llllll10, float lllllll10,
half llllllll10,
half lllllllll10,
float2 lllllllll1, float4 llllllllllllllllllllllllllll0,
sampler2D llllllllllll10,
half lllllllllllll10,
half llllllllllllll10,
half lllllllllllllll10, half llllllllllllllll10,
#ifdef USE_UNITY_TEXTURE_2D_TYPE
UnityTexture2D llllllllllllllllll10,
#else
sampler2D llllllllllllllllll10,
float4 lllllllllllllllllll10,
#endif
half llllllllllllllllllll10,
half lllllllllllllllllllll10, float llllllllllllllllllllll10,
half lllllllllllllllllllllll10, float4 llllllllllllllllllllllll10,
float lllllllllllllllllllllllll10, float llllllllllllllllllllllllll10, float lllllllllllllllllllllllllll10, float4 llllllllllllllllllllllllllll10,
float lllllllllllllllllllllllllllll10, float llllllllllllllllllllllllllllll10, float lllllllllllllllllllllllllllllll10, half l11, float4 ll11,
half lll11,
half llll11, half lllll11, float4 llllll11, float lllllll11, float llllllll11, float lllllllll11, half llllllllll11, half lllllllllll11,
half llllllllllll11, half lllllllllllll11, float4 llllllllllllll11, float lllllllllllllll11, float llllllllllllllll11, float lllllllllllllllll11, half llllllllllllllllll11, half lllllllllllllllllll11,
half llllllllllllllllllll11,
UVSets uvSets,
GeneralStylingData generalStylingData,
half lllllllllllllllllllll11, half llllllllllllllllllllllllllllll7,
half lllllllllllllllllllllll11,
half llllllllllllllllllllllll11,
float lllllllllllllllllllllllll11, float llllllllllllllllllllllllll11,
half lllllllllllllllllllllllllll11,
half llllllllllllllllllllllllllll11,
PositionAndBlendingData positionAndBlendingDataShading, UVSpaceData uvSpaceDataShading, StylingData stylingDataShading, StylingRandomData stylingRandomDataShading,
half lllllllllllllllllllllllllllll11,
half llllllllllllllllllllllllllllll11,
half lllllllllllllllllllllllllllllll11, float l12,
PositionAndBlendingData positionAndBlendingDataCastShadows, UVSpaceData uvSpaceDataCastShadows, StylingData stylingDataCastShadows, StylingRandomData stylingRandomDataCastShadows,
half ll12,
half lll12, float llll12, float lllll12, half llllll12, half lllllll12,
half llllllll12,
PositionAndBlendingData positionAndBlendingDataSpecular, UVSpaceData uvSpaceDataSpecular, StylingData stylingDataSpecular, StylingRandomData stylingRandomDataSpecular,
half lllllllll12,
half llllllllll12, float lllllllllll12, float llllllllllll12, half lllllllllllll12,
half llllllllllllll12,
PositionAndBlendingData positionAndBlendingDataRim, UVSpaceData uvSpaceDataRim, StylingData stylingDataRim, StylingRandomData stylingRandomDataRim,
#ifdef USE_UNITY_TEXTURE_2D_TYPE
UnityTexture2D lllllllllllllllll7, UnityTexture2D llllllllllllllllll7,
#else
sampler2D lllllllllllllllll7, sampler2D llllllllllllllllll7,
float4 lllllllllllllllll12,
#endif
float3 llllllllllllllllll12
)
{
float4 llllllllllllllllllll12 = float4(0, 0, 0, 0);
#ifdef USE_UNITY_TEXTURE_2D_TYPE
llllllllllllllllllll12 = llllllllllllllllll10.texelSize;
#else
llllllllllllllllllll12 = lllllllllllllllllll10;
#endif
#if _URP
AlphaDiscard(surface.alpha, 0.5);
#else
#endif
float lllllllllllllllllllll12 = 0;
float4 llllllllllllllllllllll12 = lllllllllllllllll9;
int lllllllllllllllllllllll12 = llllll10;
#if _USE_OPTIMIZATION_DEFINES
#if _ENABLE_TOON_SHADING
lllllllllllllll10 = 1;
#else
lllllllllllllll10 = 0;
#endif
#if _SHADING_COLOR
lllllllllllll10 = 0;
#else
lllllllllllll10 = 1;
#endif
#if _ENABLE_STYLING
llllllllllllllllllll11 = 1;
#else
llllllllllllllllllll11 = 0;
#endif
#if _ENABLE_SHADING_STYLING
lllllllllllllllllllllll11 = 1;
#else
lllllllllllllllllllllll11 = 0;
#endif
#if _URP
#ifdef _LIGHT_SOURCE
_LightSource = _LIGHT_SOURCE;
#endif
#endif
#if _ENABLE_CASTSHADOWS_STYLING
lllllllllllllllllllllllllllll11 = 1;
#else
lllllllllllllllllllllllllllll11 = 0;
#endif
#ifdef _STYLING_CASTSHADOWS_SYNC_WITH_OTHER_STYLING
llllllllllllllllllllllllllllll11 = _STYLING_CASTSHADOWS_SYNC_WITH_OTHER_STYLING;
#endif
#if _SHADING_TERMINATORPOSITION
lllllllllllllllllllllllll10 = lllllllllllllllllllllllll10;
#else
lllllllllllllllllllllllll10 = 0;
#endif
#if _SHADING_STYLING_TERMINATORPOSITION
lllllllllllllllllllllllllll11 = lllllllllllllllllllllllllll11;
#else
lllllllllllllllllllllllllll11 = 0;
#endif
#ifdef _SHADING_STYLING_UVSET
_UVSet = _SHADING_STYLING_UVSET;
#endif
#ifdef _CASTSHADOWS_STYLING_UVSET
_CastShadowsUVSet = _CASTSHADOWS_STYLING_UVSET;
#endif
#ifdef _SPECULAR_STYLING_UVSET
_SpecularUVSet = _SPECULAR_STYLING_UVSET;
#endif
#ifdef _RIM_STYLING_UVSET
_RimUVSet = _RIM_STYLING_UVSET;
#endif
#if _ENABLE_SPECULAR_STYLING
ll12 = 1;
#else
ll12 = 0;
#endif
#if _ENABLE_SPECULAR
llll11 = 1;
#else
llll11 = 0;
#endif
#if _SUM_LIGHTS_BEFORE_POSTERIZATION
llllllll10 = 1;
#else
llllllll10 = 0;
#endif
#if _SHADING_USE_LIGHT_COLORS
lllllllll10 = 1;
#else
lllllllll10 = 0;
#endif
#if _SPECULAR_USE_LIGHT_COLORS
lllllllllll11 = 1;
#else
lllllllllll11 = 0;
#endif
#if _STYLING_SPECULAR_USE_LIGHT_COLORS
lllllll12 = 1;
#else
lllllll12 = 0;
#endif
#if _SHADING_STYLING_ENABLE_DASHES
_StylingShadingEnableDashes = 1;
#else
_StylingShadingEnableDashes = 0;
#endif
#ifdef _SHADING_STYLING_DASHES_TYPE
_StylingShadingDashesType = _SHADING_STYLING_DASHES_TYPE;
#endif
#if _CASTSHADOWS_STYLING_ENABLE_DASHES
_StylingCastShadowsEnableDashes = 1;
#else
_StylingCastShadowsEnableDashes = 0;
#endif
#ifdef _CASTSHADOWS_STYLING_DASHES_TYPE
_StylingCastShadowsDashesType = _CASTSHADOWS_STYLING_DASHES_TYPE;
#endif
#if _SPECULAR_STYLING_ENABLE_DASHES
_StylingSpecularEnableDashes = 1;
#else
_StylingSpecularEnableDashes = 0;
#endif
#ifdef _SPECULAR_STYLING_DASHES_TYPE
_StylingSpecularDashesType = _SPECULAR_STYLING_DASHES_TYPE;
#endif
#if _RIM_STYLING_ENABLE_DASHES
_StylingRimEnableDashes = 1;
#else
_StylingRimEnableDashes = 0;
#endif
#ifdef _RIM_STYLING_DASHES_TYPE
_StylingRimDashesType = _RIM_STYLING_DASHES_TYPE;
#endif
#endif
float3 llllllllllllllllllllllllll12;
if (lll11 == 0)
{
llllllllllllllllllllllllll12 = llllllllllllllllll12;
}
else
{
#if _URP
llllllllllllllllllllllllll12 = inputData.normalWS;
#else
llllllllllllllllllllllllll12 = o.Normal;
#endif
}
float3 lllll2;
if (llllllllll11 == 0)
{
lllll2 = llllllllllllllllll12;
}
else
{
#if _URP
lllll2 = inputData.normalWS;
#else
lllll2 = o.Normal;
#endif
}
float3 llllllllllllllllllllllllllll12;
if (lllllllllllllllllllll11 == 0)
{
llllllllllllllllllllllllllll12 = llllllllllllllllll12;
}
else
{
#if _URP
llllllllllllllllllllllllllll12 = inputData.normalWS;
#else
llllllllllllllllllllllllllll12 = o.Normal;
#endif
}
float3 lllllllllllllllllllllllllll1 = normalize(d.worldSpaceViewDir);
float4 lll13 = 0;
float llllllllllllllllllllllllllllll1 = -1;
float lllll13 = -1;
half3 llllll13 = 0;
float llll4 = 0;
float llllllll13 = 0;
float lllllllllllllllllllllllllllllll1 = 0;
half3 llllllllllllllllll3 = 0;
float lllllllllll13 = 0;
half3 llllllllllll13 = 0;
float lllllllllllll13 = 0;
ToonShadingData toonShadingData;
toonShadingData.enableToonShading = lllllllllllllll10;
#if _URP
toonShadingData.normalWS = inputData.normalWS;
#endif
toonShadingData.normalWSNoMap = llllllllllllllllll12;
toonShadingData.cellTransitionSmoothness = lllllll10;
toonShadingData.numberOfCells = lllllllllllllllllllllll12;
toonShadingData.specularEdgeSmoothness = llllllll11;
toonShadingData.shadingAffectByNormalMap = lll11;
toonShadingData.specularAffectedByNormalMap = llllllllll11;
#if _URP
if ((lllllllllllll10 == 0 && lllllllllllllll10 == 1 && (lllllllllllllllllllllll10 == 1 || llll11 == 1 || lllllllllllllllllllllllllllll10 == 1)) || (llllllllllllllllllll11 == 1 && (lllllllllllllllllllllll11 == 1 || lllllllllllllllllllllllllllll11 == 1 || ll12 == 1)))
{
if (_LightSource != 1)
{
bool llllllllllllll13 = lllllllllllll10 == 0 && lllllllllllllll10 == 1;
bool lllllllllllllll13 = llllllllllllllllllll11 == 1 && (lllllllllllllllllllllll11 == 1 || lllllllllllllllllllllllllllll11 == 1 || ll12 == 1);
bool llllllllllllllll13 = lll11 == lllllllllllllllllllll11;
bool lllllllllllllllll13 = llllllllll11 == lllllllllllllllllllll11;
float llllllllllllllllll13 = 1;
float lllllllllllllllllll13 = 1;
Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask);
MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI);
float llllllllllllllllllll13 = max(mainLight.color.x, mainLight.color.y);
llllllllllllllllllll13 = max(llllllllllllllllllll13, mainLight.color.z);
float3 llllllllllllllllllllllll12 = llllllllllllllllllllllllll12;
float llllllllllllllllllllllllllll1 = lllllll11;
float lllllllllllllllllllllllllllll1 = llllllll11;
float llllllllllllllll3 = lllllllll11;
float lllllllllllllllllllllllll13 = lllllllllll11;
half llllllllllllllllllllllllll13 = llll11;
half lllllllllllllllllllllllllll13 = lllllllllllllllllllllll10;
if (!llllllllllllll13)
{
llllllllllllllllllllllll12 = llllllllllllllllllllllllllll12;
lllll2 = llllllllllllllllllllllllllll12;
llllllllllllllllllllllllllll1 = llll12;
lllllllllllllllllllllllllllll1 = lllll12;
llllllllllllllll3 = _StylingSpecularOpacity;
lllllllllllllllllllllllll13 = lllllll12;
llllllllllllllllllllllllll13 = ll12;
lllllllllllllllllllllllllll13 = lllllllllllllllllllllll11;
lllllllllllllllllllllllll10 = lllllllllllllllllllllllllll11;
}
else
{
if (lllllllllllllllllllllll10 == 0)
{
llllllllllllllllllllllll12 = llllllllllllllllllllllllllll12;
lllllllllllllllllllllllllll13 = lllllllllllllllllllllll11;
}
if (llll11 == 0)
{
lllll2 = llllllllllllllllllllllllllll12;
llllllllllllllllllllllllll13 = ll12;
}
else
{
if (lllllllllllllll13 && ll12 == 1 && lll12 == 1)
{
llll12 = lllllll11;
lllll12 = llllllll11;
}
}
}
float llllllllllllllllllllllllllll13 = 1;
if (mainLight.color.r > 0.0 || mainLight.color.g > 0.0 || mainLight.color.b > 0.0)
{
llllllllllllllllllllllllllll13 = (mainLight.shadowAttenuation * mainLight.distanceAttenuation);
half lllllllllllllllllllllllllllll13 = mainLight.distanceAttenuation * llllllllllllllllllll13;
llllllllllllllllllllllllllllll1 = dot(mainLight.direction, llllllllllllllllllllllll12);
if (lllllllllllllllllllllllll10 != 0.0)
{
llllllllllllllllllllllllllllll1 = shiftLinear(llllllllllllllllllllllllllllll1, max(-0.9999, lllllllllllllllllllllllll10));
}
if (llllllllllllllllllllllllllllll1 > 0)
{
llllllllllllllllllllllllllllll1 *= lllllllllllllllllllllllllllll13;
}
if (llllllllllllllllllllllllll13 || (!llllllllllllll13 && ll12))
{
lllllllllllllllllllllllllllllll1 = CalculateSpecularMask(lllll2, mainLight.direction, lllllllllllllllllllllllllll1, llllllllllllllllllllllllllll1, lllllllllllllllllllllllllllll1, llllllllllllllllllllllllllllll1);
lllllllllllllllllllllllllllllll1 *= llllllllllllllll3;
if ((llllllllllllll13 && lllllllllllllllllllllllllllll10) || (llllllllllllllllllll11 && lllllllllllllllllllllllllllll11))
{
lllllllllllllllllllllllllllllll1 = min(lllllllllllllllllllllllllllllll1, mainLight.shadowAttenuation);
}
if (lllllllllllllllllllllllll13 == 1)
{
llllllllllllllllll3 = lllllllllllllllllllllllllllllll1 * mainLight.color;
}
}
if (!llllllllllllll13)
{
lllll13 = llllllllllllllllllllllllllllll1;
lllllllllll13 = lllllllllllllllllllllllllllllll1;
llllllllllll13 = llllllllllllllllll3;
lllllllllllllllllllllllllllllll1 = 0;
llllllllllllllllll3 = 0;
}
else
{
if (lllllllllllllllllllllll10 == 0)
{
lllll13 = llllllllllllllllllllllllllllll1;
}
if (llll11 == 0)
{
lllllllllll13 = lllllllllllllllllllllllllllllll1;
llllllllllll13 = llllllllllllllllll3;
lllllllllllllllllllllllllllllll1 = 0;
llllllllllllllllll3 = 0;
}
}
if (lllllllllllllll13 && llllllllllllll13)
{
if (llllllllllllllll13 && lllllllllllllllllllllllll11)
{
lllll13 = llllllllllllllllllllllllllllll1;
}
else
{
if (lllllllllllllllllllllllll11)
{
lllllllllllllllllllllllllll11 = lllllllllllllllllllllllll10;
}
lllll13 = dot(mainLight.direction, llllllllllllllllllllllllllll12);
if (lllllllllllllllllllllllllll11 != 0.0)
{
lllll13 = shiftLinear(lllll13, max(-0.9999, lllllllllllllllllllllllllll11));
}
if (lllll13 > 0)
{
lllll13 *= lllllllllllllllllllllllllllll13;
}
}
if (ll12 == 1)
{
if (llllllllllllllll13 && lllllllllllllllll13 && lll12 == 1)
{
lllllllllll13 = lllllllllllllllllllllllllllllll1;
llllllllllll13 = llllllllllllllllll3;
}
else
{
lllllllllll13 = CalculateSpecularMask(llllllllllllllllllllllllllll12, mainLight.direction, lllllllllllllllllllllllllll1, llll12, lllll12, lllll13);
if (lllllllllllllllllllllllllllll10 || lllllllllllllllllllllllllllll11)
{
lllllllllll13 = min(lllllllllll13, mainLight.shadowAttenuation);
}
if (lllllll12 == 1)
{
llllllllllll13 = lllllllllll13 * mainLight.color;
}
}
}
}
{
llllllllllllllllll13 = llllllllllllllllllllllllllll13;
}
}
else
{
llllllllllllllllll13 = 1;
llllllllllllllllllllllllllll13 = 1;
llllllllllllllllllllllllllllll1 = -1;
lllll13 = -1;
}
float llllllllllllllllllllllllllllll13 = 0;
float lllllllllllllllllllllllllllllll13 = 0;
float l14 = 0;
float ll14 = 0;
float lll14 = 2;
float llll14 = 2;
float lllll14 = 0;
float llllll14 = 1;
#if defined(_ADDITIONAL_LIGHTS)
#if UNITY_VERSION >= 202200
uint meshRenderingLayers = GetMeshRenderingLayer();
#else
uint meshRenderingLayers = GetMeshRenderingLightLayer();
#endif
#if USE_CLUSTER_LIGHT_LOOP
[loop]
for (uint lightIndex = 0; lightIndex < min(URP_FP_DIRECTIONAL_LIGHTS_COUNT, MAX_VISIBLE_LIGHTS); lightIndex++)
{
Light addLight = GetAdditionalLight(lightIndex, inputData.positionWS, half4(1, 1, 1, 1));
#ifdef _LIGHT_LAYERS
if (IsMatchingLightLayer(addLight.layerMask, meshRenderingLayers))
#endif
{
float llllllllllllllllllllll3 = max(addLight.color.x, addLight.color.y);
llllllllllllllllllllll3 = max(llllllllllllllllllllll3, addLight.color.z);
half llllllll14 = addLight.distanceAttenuation * llllllllllllllllllllll3;
float lllllllll14 = smoothstep(0, 0.1 / (addLight.distanceAttenuation * llllllllllllllllllllll3), addLight.distanceAttenuation * llllllllllllllllllllll3);
float llllllllll14 = smoothstep(0, 0.01, addLight.distanceAttenuation * llllllllllllllllllllll3);
lllll14 += addLight.shadowAttenuation * llllllll14;
float lllllllllll14 = dot(addLight.direction, llllllllllllllllllllllll12);
if (lllllllllllllllllllllllll10 != 0)
{
lllllllllll14 = shiftLinear(lllllllllll14, max(-0.9999, lllllllllllllllllllllllll10));
}
float llllllllllll14 = lerp(-1, lllllllllll14, lllllllll14);
{
llllll14 = min(llllll14, lerp(1, addLight.shadowAttenuation, llllllllll14));
}
float lllllllllllll14 = saturate(llllllllllll14) * llllllll14;
l14 += lllllllllllll14;
if (llllllllllllll13 || (lllllllllllllllllllllll11 == 1 && lllllllllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1))
{
if (lllllllllllllllllllllllllllll10 == 1 || (!llllllllllllll13))
{
lllllllllllll14 *= addLight.shadowAttenuation;
}
llllllllllllllllllllllllllllll13 += lllllllllllll14;
}
if (llllllllllllll13)
{
if (lllllllll10 == 1)
{
llllll13 += saturate(lllllllllllll14 * (addLight.color));
}
}
if (sign(llllllllllll14) == -1 && l14 == 0)
{
float llllllllllllll14 = abs(llllllllllll14);
lll14 = min(lll14, llllllllllllll14);
}
float lllllllllllllll14 = 0;
if (llll11 || (!llllllllllllll13 && ll12))
{
lllllllllllllll14 = CalculateSpecularMask(lllll2, addLight.direction, lllllllllllllllllllllllllll1, llllllllllllllllllllllllllll1, lllllllllllllllllllllllllllll1, lllllllllll14);
lllllllllllllll14 *= llllllllllllllll3;
if (lllllllllllllllllllllllllllll10 || lllllllllllllllllllllllllllll11)
{
lllllllllllllll14 *= addLight.shadowAttenuation;
}
lllllllllllllllllllllllllllllll1 += lllllllllllllll14;
if (lllllllllllllllllllllllll13 == 1)
{
llllllllllllllllll3 += addLight.color * lllllllllllllll14;
}
}
if (lllllllllllllll13 && llllllllllllll13)
{
float llllllllllllllll14 = 0;
if (llllllllllllllll13 && (lllllllllllllllllllllllll11 || (lllllllllllllllllllllllll10 == lllllllllllllllllllllllllll11)))
{
ll14 = l14;
llll14 = lll14;
lllllllllllllllllllllllllllllll13 = llllllllllllllllllllllllllllll13;
}
else
{
llllllllllllllll14 = dot(addLight.direction, llllllllllllllllllllllllllll12);
if (lllllllllllllllllllllllll11)
{
lllllllllllllllllllllllllll11 = lllllllllllllllllllllllll10;
}
if (lllllllllllllllllllllllllll11 != 0)
{
llllllllllllllll14 = shiftLinear(llllllllllllllll14, max(-0.9999, lllllllllllllllllllllllllll11));
}
float lllllllllllllllll14 = lerp(-1, llllllllllllllll14, lllllllll14);
float llllllllllllllllll14 = saturate(lllllllllllllllll14) * llllllll14;
ll14 += llllllllllllllllll14;
if (lllllllllllllllllllllllllllll11 == 1 && lllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1)
{
llllllllllllllllll14 *= addLight.shadowAttenuation;
lllllllllllllllllllllllllllllll13 += llllllllllllllllll14;
}
if (sign(lllllllllllllllll14) == -1 && ll14 == 0)
{
float lllllllllllllllllll14 = abs(lllllllllllllllll14);
llll14 = min(llll14, lllllllllllllllllll14);
}
}
if (ll12 == 1)
{
float llllllllllllllllllll14 = 0;
if (llllllllllllllll13 && lllllllllllllllll13 && lll12 == 1)
{
lllllllllll13 = lllllllllllllllllllllllllllllll1;
llllllllllllllllllll14 = lllllllllllllll14;
}
else
{
llllllllllllllllllll14 = CalculateSpecularMask(lllll2, addLight.direction, lllllllllllllllllllllllllll1, llll12, lllll12, lllllllllll14);
llllllllllllllllllll14 = llllllllllllllllllll14;
if (lllllllllllllllllllllllllllll11)
{
llllllllllllllllllll14 *= addLight.shadowAttenuation;
}
lllllllllll13 += llllllllllllllllllll14;
}
if (lllllll12 == 1)
{
llllllllllll13 += addLight.color * llllllllllllllllllll14;
}
}
}
}
}
#endif
uint pixelLightCount = GetAdditionalLightsCount();
LIGHT_LOOP_BEGIN(pixelLightCount)
Light addLight = GetAdditionalLight(lightIndex, inputData.positionWS, half4(1, 1, 1, 1));
#ifdef _LIGHT_LAYERS
if (IsMatchingLightLayer(addLight.layerMask, meshRenderingLayers))
#endif
{
float llllllllllllllllllllll3 = max(addLight.color.x, addLight.color.y);
llllllllllllllllllllll3 = max(llllllllllllllllllllll3, addLight.color.z);
half llllllll14 = addLight.distanceAttenuation * llllllllllllllllllllll3;
float lllllllll14 = smoothstep(0, 0.1 / (addLight.distanceAttenuation * llllllllllllllllllllll3), addLight.distanceAttenuation * llllllllllllllllllllll3);
float llllllllll14 = smoothstep(0, 0.01, addLight.distanceAttenuation * llllllllllllllllllllll3);
lllll14 += addLight.shadowAttenuation * llllllll14;
float lllllllllll14 = dot(addLight.direction, llllllllllllllllllllllll12);
if (lllllllllllllllllllllllll10 != 0)
{
lllllllllll14 = shiftLinear(lllllllllll14, max(-0.9999, lllllllllllllllllllllllll10));
}
float llllllllllll14 = lerp(-1, lllllllllll14, lllllllll14);
{
llllll14 = min(llllll14, lerp(1, addLight.shadowAttenuation, llllllllll14));
}
float lllllllllllll14 = saturate(llllllllllll14) * llllllll14;
l14 += lllllllllllll14;
if (llllllllllllll13 || (lllllllllllllllllllllll11 == 1 && lllllllllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1))
{
if (lllllllllllllllllllllllllllll10 == 1 || (!llllllllllllll13))
{
lllllllllllll14 *= addLight.shadowAttenuation;
}
llllllllllllllllllllllllllllll13 += lllllllllllll14;
}
if (llllllllllllll13)
{
if (lllllllll10 == 1)
{
llllll13 += saturate(lllllllllllll14 * (addLight.color));
}
}
if (sign(llllllllllll14) == -1 && l14 == 0)
{
float llllllllllllll14 = abs(llllllllllll14);
lll14 = min(lll14, llllllllllllll14);
}
float lllllllllllllll14 = 0;
if (llll11 || (!llllllllllllll13 && ll12))
{
lllllllllllllll14 = CalculateSpecularMask(lllll2, addLight.direction, lllllllllllllllllllllllllll1, llllllllllllllllllllllllllll1, lllllllllllllllllllllllllllll1, lllllllllll14);
lllllllllllllll14 *= llllllllllllllll3;
if (lllllllllllllllllllllllllllll10 || lllllllllllllllllllllllllllll11)
{
lllllllllllllll14 *= addLight.shadowAttenuation;
}
lllllllllllllllllllllllllllllll1 += lllllllllllllll14;
if (lllllllllllllllllllllllll13 == 1)
{
llllllllllllllllll3 += addLight.color * lllllllllllllll14;
}
}
if (lllllllllllllll13 && llllllllllllll13)
{
float llllllllllllllll14 = 0;
if (llllllllllllllll13 && (lllllllllllllllllllllllll11 || (lllllllllllllllllllllllll10 == lllllllllllllllllllllllllll11)))
{
ll14 = l14;
llll14 = lll14;
lllllllllllllllllllllllllllllll13 = llllllllllllllllllllllllllllll13;
}
else
{
llllllllllllllll14 = dot(addLight.direction, llllllllllllllllllllllllllll12);
if (lllllllllllllllllllllllll11)
{
lllllllllllllllllllllllllll11 = lllllllllllllllllllllllll10;
}
if (lllllllllllllllllllllllllll11 != 0)
{
llllllllllllllll14 = shiftLinear(llllllllllllllll14, max(-0.9999, lllllllllllllllllllllllllll11));
}
float lllllllllllllllll14 = lerp(-1, llllllllllllllll14, lllllllll14);
float llllllllllllllllll14 = saturate(lllllllllllllllll14) * llllllll14;
ll14 += llllllllllllllllll14;
if (lllllllllllllllllllllllllllll11 == 1 && lllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1)
{
llllllllllllllllll14 *= addLight.shadowAttenuation;
lllllllllllllllllllllllllllllll13 += llllllllllllllllll14;
}
if (sign(lllllllllllllllll14) == -1 && ll14 == 0)
{
float lllllllllllllllllll14 = abs(lllllllllllllllll14);
llll14 = min(llll14, lllllllllllllllllll14);
}
}
if (ll12 == 1)
{
float llllllllllllllllllll14 = 0;
if (llllllllllllllll13 && lllllllllllllllll13 && lll12 == 1)
{
lllllllllll13 = lllllllllllllllllllllllllllllll1;
llllllllllllllllllll14 = lllllllllllllll14;
}
else
{
llllllllllllllllllll14 = CalculateSpecularMask(lllll2, addLight.direction, lllllllllllllllllllllllllll1, llll12, lllll12, lllllllllll14);
llllllllllllllllllll14 = llllllllllllllllllll14;
if (lllllllllllllllllllllllllllll11)
{
llllllllllllllllllll14 *= addLight.shadowAttenuation;
}
lllllllllll13 += llllllllllllllllllll14;
}
if (lllllll12 == 1)
{
llllllllllll13 += addLight.color * llllllllllllllllllll14;
}
}
}
}
LIGHT_LOOP_END
#endif
if (lllllllllllllll10 == 1 && lllllllllllllllllllllll10 == 1 && lllllllll10 == 1)
{
float3 llll15 = saturate(saturate(llllllllllllllllllllllllllllll1) * (mainLight.color));
if (lllllllllllllllllllllllllllll10 == 1)
{
llll15 *= llllllllllllllllllllllllllll13;
}
llllll13 += saturate(llll15);
llllll13 = saturate(llllll13);
const float3 lllll15 = float3(0.2126, 0.7152, 0.0722);
float llllll15 = dot(llllll13, lllll15);
float lllllll15 = Posterize(saturate(llllll15), toonShadingData);
const float llllllll15 = 1e-6;
float lllllllll15 = (llllll15 > llllllll15) ? (lllllll15 / llllll15) : 0.0;
llllll13 = llllll13 * lllllllll15;
}
if (!llllllllllllll13)
{
ll14 = l14;
lllllllllllllllllllllllllllllll13 = llllllllllllllllllllllllllllll13;
llll14 = lll14;
lllllllllll13 = lllllllllllllllllllllllllllllll1 + lllllllllll13;
llllllllllll13 = llllllllllllllllll3;
lllllllllllllllllllllllllllllll1 = 0;
llllllllllllllllll3 = 0;
}
float llllllllll15 = saturate(llllllllllllllllllllllllllllll1);
float lllllllllll15 = saturate(llllllllllllllllllllllllllllll13);
if (llllllllllllllll10 == 0)
{
if (llllllll10 == 0)
{
llllllllll15 = Posterize(llllllllll15, toonShadingData);
lllllllllll15 = Posterize(lllllllllll15, toonShadingData);
}
}
if (lllllllllllllll10 == 1 && lllllllllllllllllllllllllllll10 == 1 && (lllllllllllllllllllllll10 == 0 || (llllllllllll11 && llllllllllllllllll11 == 1)))
{
float llllllllllll15 = saturate(min(llllllllllllllllll13, llllll14));
float lllllllllllll15 = llllllllllllllllllllllllllll13 * saturate(llllllllllllllllllllllllllllll1) + saturate(l14) * lllll14;
float llllllllllllll15 = saturate((1 - llllllllllll15) * saturate(lllllllllllll15)) + llllllllllll15;
llll4 = llllllllllllll15;
}
if (llllllllllllllllllll11 == 1)
{
if (lllllllllllllllllllllllllllll11 == 1)
{
if (llllllllllllllllllllllllllllll11 == 1)
{
llllllll13 = saturate(llllllllllllllllllllllllllll13 + lllll14);
if (lllll13 > 0)
{
lllll13 = saturate(lllll13);
lllll13 *= llllllllllllllllllllllllllll13;
}
if (ll14 > 0)
{
lllll13 = saturate(lllll13);
lllll13 += saturate(lllllllllllllllllllllllllllllll13);
}
else
{
if (llll14 > 0)
{
lllll13 = max(lllll13, -1 * llll14);
}
}
}
else
{
float llllllllllll15 = min(llllllllllllllllll13, llllll14);
float lllllllllllll15 = llllllllllllllllllllllllllll13 * saturate(lllll13) + saturate(ll14) * lllll14;
float llllllllllllll15 = ((1 - llllllllllll15) * (lllllllllllll15)) + llllllllllll15;
llllllll13 = llllllllllllll15;
}
}
if (lllllllllllllllllllllllllllll11 == 0 || llllllllllllllllllllllllllllll11 != 1)
{
float llllllllllllllllll15 = lllll13;
lllll13 = saturate(lllll13) + saturate(ll14);
if (lllll13 == 0)
{
lllll13 = max(llllllllllllllllll15, -1 * llll14);
}
}
}
if (llllllllllllllllllllllllllllll1 > 0)
{
llllllllllllllllllllllllllllll1 = saturate(llllllllll15);
if (lllllllllllllllllllllllllllll10 == 1)
{
llllllllllllllllllllllllllllll1 *= llllllllllllllllllllllllllll13;
}
}
if (l14 > 0)
{
llllllllllllllllllllllllllllll1 = saturate(llllllllllllllllllllllllllllll1);
llllllllllllllllllllllllllllll1 += saturate(lllllllllll15);
}
else
{
if (lll14 > 0)
{
llllllllllllllllllllllllllllll1 = max(llllllllllllllllllllllllllllll1, -1 * lll14);
}
}
if (llllllllllllllllllllllllllllll1 < 0)
{
}
else
{
if (llllllllllllllll10 == 0 && llllllll10 == 1)
{
llllllllllllllllllllllllllllll1 = Posterize(saturate(llllllllllllllllllllllllllllll1), toonShadingData);
}
}
}
#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) || defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)
if(_LightSource != 0)
{
const float3 lllll15 = float3(0.2126, 0.7152, 0.0722);
const float llllllll15 = 1e-6;
float3 lllllllllllllllllllll15 = (inputData.bakedGI);
float llllll15 = dot(lllllllllllllllllllll15, lllll15);
llllllll13 = saturate(llllllll13+llllll15);
if(_LightSource != 0 && lllllllllllllll10 == 1)
{
if(lllllllllllll10 == 0)
{
if(llllllllllllllll10 == 0)
{
float lllllllllllllllllllllll15 = llllll15;
if (lllllllllllllllllllllllll10 != 0.0)
{
lllllllllllllllllllllll15 = shiftLinear(lllllllllllllllllllllll15, saturate(lllllllllllllllllllllllll10));
}
lllllllllllll13 = lllllllllllllllllllllll15;
}
else
{
if(llllll15 > 0)
{
llllllllllllllllllllllllllllll1 = max(llllll15, llllllllllllllllllllllllllllll1);
}
}
}
}
if(_LightSource == 1)
{
lllll13 = 0;
}
if(_LightSource != 0 && lllllllllllllllllllllll11 == 1)
{
float llllllllllllllllllllllll15 = saturate(llllll15);
if (lllllllllllllllllllllllllll11 != 0.0)
{
llllllllllllllllllllllll15 = shiftLinear(llllll15, saturate(lllllllllllllllllllllllllll11));
}
if(llllll15>0)
{
lllll13 = max(lllll13,saturate(llllllllllllllllllllllll15));
}
}
}
#endif
}
#else
UnityLight lllllllllllllllllll12 = gi.light;
llllllllllllllllllllllllllllll1 = dot(lllllllllllllllllll12.dir, llllllllllllllllllllllllll12);
if (lllllllllllllllllllllllll10 != 0)
{
llllllllllllllllllllllllllllll1 = shiftLinear(llllllllllllllllllllllllllllll1, max(-0.9999, lllllllllllllllllllllllll10));
}
if (lllllllllllllllllllllllll11 == 0)
{
lllll13 = dot(lllllllllllllllllll12.dir, llllllllllllllllllllllllllll12);
if (lllllllllllllllllllllllllll11 != 0)
{
lllll13 = shiftLinear(lllll13, max(-0.9999, lllllllllllllllllllllllllll11));
}
}
else
{
lllll13 = llllllllllllllllllllllllllllll1;
}
#if !_PASSFORWARDADD
if (llllllllllllllllllllllllllllll1 > 0)
{
llll4 = giInput.atten;
}
else
{
llll4 = 1;
}
if (lllllllllllllllllllllllllllll11 == 1 && lllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1)
{
lllll13 *= llll4;
}
llllllll13 = llll4;
#else
llll4 = 0;
llllllllllll11 = 0;
llllllllllllllllllll11 = 0;
lllllllll12 = 0;
lllllllllllllllllllllll11 = 0;
lllllllllllllllllllllllllllll11 = 0;
stylingDataShading.color = 0;
stylingDataSpecular.color = half4(gi.light.color,1);
#endif
#endif
float llllllllllllllllllllllllllll15 = llll4;
float lllllllllllllllllllllllllllll15 = 0;
float4 llllllllllllllllllllllllllllll15 = 0;
float3 lllllllllllllllllllllllllll3;
if (lllllllllllllllllll11 == 0)
{
lllllllllllllllllllllllllll3 = llllllllllllllllll12;
}
else
{
#if _URP
lllllllllllllllllllllllllll3 = inputData.normalWS;
#else
lllllllllllllllllllllllllll3 = o.Normal;
#endif
}
float llllllllllll15 = 0;
if (lllllllllllll10 == 0)
{
llllllllllllllllllllllllllll15 = llll4;
if (lllllllllllllll10 == 1)
{
float3 ll16 = llllllllllllllllllllllll10.rgb;
if (lllllllllllllllllllllllllllll10 == 1
|| (lllllllllllllllllllllll10 == 1 && llllllllllllllll10 == 0)
|| (lllllllllllllllllllllll10 == 0 && llllllllllllllll10 == 0 && lllllllllllllllllllllllllllll10 == 1)
|| _LightSource != 0
)
{
ll16 = lerp(llllllllllllllllllllllll10.rgb, llllllllllllllllllllll12.rgb, 1 - llllllllllllllllllllllll10.a);
}
if (llllllllllllllll10 == 0)
{
if (lllllllllllllllllllllll10 == 1)
{
float lllllllllllllllllllllllllllll15 = saturate(llllllllllllllllllllllllllllll1);
#if _URP
float3 llll16 = 0;
if (_LightSource != 0)
{
float3 lllll16 = inputData.bakedGI;
float llllll16 = max(lllll16.r, max(lllll16.g, lllll16.b));
llll16 = lllll16 / max(llllll16, 1e-5);
}
if (lllllllll10 == 1)
{
if (_LightSource != 0)
{
llllll13 *= lllllllllllllllllllllllllllll15;
llllll13 += llll16 * saturate(lllllllllllll13);
}
lllllllllllllllll9 *= float4(llllll13, 1);
}
if (_LightSource != 0)
{
float lllllll16 = PosterizeMulti(saturate(lllllllllllll13), toonShadingData, 1);
lllllllllllllllllllllllllllll15 = saturate(lllllllllllllllllllllllllllll15 + lllllll16);
}
#else
lllllllllllllllllllllllllllll15 = Posterize(lllllllllllllllllllllllllllll15, toonShadingData);
#endif
lllllllllllllllll9.xyz = lerp(ll16, lllllllllllllllll9.xyz, lllllllllllllllllllllllllllll15);
#if !_URP
if (lllllllllllllllllllllllllllll10 == 1)
{
lllllllllllllllll9 = float4(lerp(ll16, lllllllllllllllll9.rgb, saturate(llll4)), llllllllllllllllllllll12.a);
}
#endif
}
}
else
{
float lllllllllllllllllllllllllllll16 = min(0.95, llllllllllllllllllllllllllllll1);
if (llllllllllllllllllll10 == 1 && lllllllllllllllllllllll10 == 0 && llllllllllllllllllllllllllllll1 < 0)
{
lllllllllllllllllllllllllllll16 = 0;
}
lllllllllllllllllllllllllllll16 = (lllllllllllllllllllllllllllll16 + 1) / 2;
float4 llllllllllllllllllllllllllllll16 = float4(0, 0, 0, 0);
float lllllllllllllllllllllllllllllll16 = llllllllllllllllllll12.z;
float l17 = lllllllllllllllllllllllllllll16 * (lllllllllllllllllllllllllllllll16 - 1);
float2 ll17 = (l17 + 0.5) * llllllllllllllllllll12.xy;
llllllllllllllllllllllllllllll16 = tex2D(llllllllllllllllll10, ll17);
DoBlending(lllllllllllllllll9, llllllllllllllllllllll10, lllllllllllllllllllll10, llllllllllllllllllllllllllllll16);
}
if (lllllllllllllllllllllllllllll10 == 0 && (llllllllllllllllllll11 == 0 || lllllllllllllllllllllllllllll11 == 0))
{
llll4 = 1;
}
if (_LightSource == 0)
{
if (lllllllllllllllllllllll10 == 1 && llllllllllllllll10 == 0)
{
if (llllllllllllllllllllllllllllll1 < 0.0 && saturate(lllllllllllll13) < 0.0001)
{
lllllllllllllllll9 = llllllllllllllllllllllllllll10;
lllllllllllllllllllllllllll10 = 1 - lllllllllllllllllllllllllll10;
float lllllll17 = lllllllllllllllllllllllllll10 * llllllllllllllllllllllllll10;
float llllllll17 = smoothstep(-lllllll17 + 0.01, -llllllllllllllllllllllllll10, llllllllllllllllllllllllllllll1);
float3 lllllllll17 = lerp(llllllllllllllllllllllllllll10.rgb, llllllllllllllllllllll12.rgb, 1 - llllllllllllllllllllllllllll10.a);
lllllllllllllllll9 = float4(lerp(ll16, lllllllll17, llllllll17), llllllllllllllllllllll12.a);
}
}
if (lllllllllllllllllllllll10 == 0 && llllllllllllllll10 == 0 && lllllllllllllllllllllllllllll10 == 1)
{
lllllllllllllllll9 = float4(lerp(ll16, lllllllllllllllll9.rgb, saturate(llll4)), llllllllllllllllllllll12.a);
}
}
}
#if _URP
if (_LightSource != 1)
#endif
{
#if _ENABLE_SPECULAR || !_USE_OPTIMIZATION_DEFINES
if (llll11 == 1)
{
#if _URP
#else
lllllllllllllllllllllllllllllll1 = CalculateSpecularMask(lllll2, lllllllllllllllllll12.dir, lllllllllllllllllllllllllll1, lllllll11, llllllll11, llllllllllllllllllllllllllllll1);
lllllllllllllllllllllllllllllll1 *= lllllllll11;
if (lllllllllllllllllllllllllllll10 == 1)
{
lllllllllllllllllllllllllllllll1 *= llll4;
}
#endif
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SPECULAR_BLENDING
lllll11 = _SPECULAR_BLENDING;
#endif
#endif
half4 llllllllll17;
{
llllllllll17 = llllll11;
}
DoBlending(lllllllllllllllll9, lllllllllllllllllllllllllllllll1, lllll11, llllllllll17);
}
#endif
}
#if _URP
lllllllllllllllll9 += half4(surface.emission, 0);
#else
lllllllllllllllll9 += half4(o.Emission, 0);
#endif
}
else
{
ToonShadingData toonShadingData;
toonShadingData.enableToonShading = lllllllllllllll10;
#if _URP
toonShadingData.normalWS = inputData.normalWS;
#endif
toonShadingData.normalWSNoMap = llllllllllllllllll12;
toonShadingData.cellTransitionSmoothness = lllllll10;
toonShadingData.numberOfCells = lllllllllllllllllllllll12;
toonShadingData.specularEdgeSmoothness = llllllll11;
toonShadingData.shadingAffectByNormalMap = lll11;
toonShadingData.specularAffectedByNormalMap = llllllllll11;
#if _USE_OPTIMIZATION_DEFINES
#if _ENABLE_TOON_SHADING
toonShadingData.enableToonShading = 1;
#else
toonShadingData.enableToonShading = 0;
#endif
#endif
#if _SHADING_BLINNPHONG
if (llllllllllllll10 == 0)
{
#if _URP
#if UNITY_VERSION >= 202120
lllllllllllllllll9 = UniversalFragmentBlinnPhong(inputData, surface.albedo, half4(surface.specular, surface.smoothness), surface.smoothness, surface.emission, surface.alpha,lllllllllllllllllllllllllllllll9, toonShadingData);
#else
lllllllllllllllll9 = UniversalFragmentBlinnPhong(inputData, surface.albedo, half4(surface.specular, surface.smoothness), surface.smoothness, surface.emission, surface.alpha, toonShadingData);
#endif
#else
#endif
}
#endif
#if _SHADING_PBR
if (llllllllllllll10 == 1)
{
#if _URP
lllllllllllllllll9 = UniversalFragmentPBR(inputData, surface, toonShadingData);
#else
#if !_PASSFORWARDADD
#if _USESPECULAR || _USESPECULARWORKFLOW || _SPECULARFROMMETALLIC
#else
LightingStandard_GI_Toon(o, giInput, gi, toonShadingData);
#if defined(_OVERRIDE_BAKEDGI)
gi.indirect.diffuse = l.DiffuseGI;
gi.indirect.specular = l.SpecularGI;
#endif
lllllllllllllllll9 = LightingStandard_Toon (o, d.worldSpaceViewDir, gi, toonShadingData);
lllllllllllllllll9 += half4(o.Emission, 0);
#endif
#else
#if _USESPECULAR
#elif _BDRF3 || _SIMPLELIT
#else
lllllllllllllllll9 = LightingStandard_Toon (o, d.worldSpaceViewDir, gi, toonShadingData);
#endif
#endif
#endif
}
#endif
}
float lllll4 = 0;
if (lllllllllllllll10 == 1)
{
#if _URP
Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask);
float llllllllllll17 = dot(mainLight.direction, lllllllllllllllllllllllllll3);
float lllllllllllll17 = mainLight.shadowAttenuation;
#else
float llllllllllllllllllllllllllllll1 = dot(lllllllllllllllllll12.dir, lllllllllllllllllllllllllll3);
#endif
#if _ENABLE_RIM || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (llllllllllll11 == 1)
#endif
{
#if _URP
lllll4 = CalculateRimMask(lllllllllllllllllllllllllll3, lllllllllllllllllllllllllll1, lllllllllllllll11, llllllllllllllll11, llllllllllll17, llllllllllllllllll11, lllllllllllllllllllllllllllll10, lllllllllllllllllllllll10, lllllllllllll17);
#else
lllll4 = CalculateRimMask(lllllllllllllllllllllllllll3, lllllllllllllllllllllllllll1, lllllllllllllll11, llllllllllllllll11, llllllllllllllllllllllllllllll1, llllllllllllllllll11, lllllllllllllllllllllllllllll10, lllllllllllllllllllllll10, llll4);
#endif
lllll4 *= lllllllllllllllll11;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _RIM_BLENDING
lllllllllllll11 = _RIM_BLENDING;
#endif
#endif
lllll4 = saturate(lllll4);
DoBlending(lllllllllllllllll9, lllll4, lllllllllllll11, llllllllllllll11);
}
#endif
}
#if _ENABLE_STYLING || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (llllllllllllllllllll11 == 1)
#endif
{
#ifdef _EMISSION
#if _URP
float3 lllllllllllllll17 = surface.emission;
#else
float3 lllllllllllllll17 = o.Emission;
#endif
float llllllllllllllllll17 = max(max(lllllllllllllll17.r, lllllllllllllll17.g), lllllllllllllll17.b);
#endif
#if !_URP
if (ll12 == 1)
{
if (llll11 == 0 || lll12 == 0)
{
float lllllllllllllllllll17 = saturate(llllllllllllllllllllllllllllll1);
lllllllllll13 = CalculateSpecularMask(llllllllllllllllllllllllllll12, lllllllllllllllllll12.dir, lllllllllllllllllllllllllll1, llll12, lllll12, lllllllllllllllllll17);
lllllllllll13 = saturate(lllllllllll13);
lllllllllll13 *= llllllllllllllllllllllllllll15;
}
else
{
lllllllllll13 = saturate(lllllllllllllllllllllllllllllll1);
}
}
#endif
if (llllll12 == 1)
{
lllll13 = 1 - lllll13 - lllllllllll13 * 10;
lllll13 = 1 - lllll13;
llllllllllllllllllllllllllll15 = 1 - ((1 - llllllllllllllllllllllllllll15) - lllllllllll13 * 10);
}
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SHADING_STYLING_DRAWSPACE
uvSpaceDataShading.drawSpace = _SHADING_STYLING_DRAWSPACE;
#endif
#ifdef _SHADING_STYLING_COORDINATESYSTEM
uvSpaceDataShading.coordinateSystem = _SHADING_STYLING_COORDINATESYSTEM;
#endif
#endif
#if _URP
float2 llllllllllllllllllll17 = ConvertToDrawSpace(inputData, lllllllll1, uvSpaceDataShading, llllllllllllllllllllllllllll0, uvSets);
#else
float2 llllllllllllllllllll17 = ConvertToDrawSpace(d.worldSpacePosition, d.worldSpaceNormal, lllllllll1, uvSpaceDataShading, llllllllllllllllllllllllllll0, uvSets);
#endif
float lllllllllllllllllllllll17 = stylingDataShading.density;
float lllllllllllllllllll5 = stylingDataShading.size;
float lllllllllllllllllllllllll17 = 1;
#if _ENABLE_SHADING_STYLING || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (lllllllllllllllllllllll11 != 0)
#endif
{
float llllllllllllllllllllllllll17 = 0;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SHADING_STYLING_BLENDING
positionAndBlendingDataShading.blending = _SHADING_STYLING_BLENDING;
#endif
#ifdef _SHADING_STYLE
stylingDataShading.style = _SHADING_STYLE;
#endif
#if _SHADING_STYLING_RANDOMIZER
stylingRandomDataShading.enableRandomizer = 1;
#else
stylingRandomDataShading.enableRandomizer = 0;
#endif
#endif
RequiredNoiseData requiredNoiseDataShading;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SHADING_STYLING_RANDOMIZER_PERLIN
requiredNoiseDataShading.perlinNoise = 1;
#else
requiredNoiseDataShading.perlinNoise = 0;
#endif
#ifdef _SHADING_STYLING_RANDOMIZER_PERLIN_FLOORED
requiredNoiseDataShading.perlinNoiseFloored = 1;
#else
requiredNoiseDataShading.perlinNoiseFloored = 0;
#endif
#ifdef _SHADING_STYLING_RANDOMIZER_WHITE
requiredNoiseDataShading.whiteNoise = 1;
#else
requiredNoiseDataShading.whiteNoise = 0;
#endif
#ifdef _SHADING_STYLING_RANDOMIZER_WHITE_FLOORED
requiredNoiseDataShading.whiteNoiseFloored = 1;
#else
requiredNoiseDataShading.whiteNoiseFloored = 0;
#endif
#else
requiredNoiseDataShading.perlinNoise = 1;
requiredNoiseDataShading.perlinNoiseFloored = 1;
requiredNoiseDataShading.whiteNoise = 1;
requiredNoiseDataShading.whiteNoiseFloored = 1;
#endif
float lllllllllllllllllllllllllll17 = (lllll13);
if (lllllllllllllllllllllllllllll11 == 1 && llllllllllllllllllllllllllllll11 == 1
#if _URP
&& _LightSource != 1
#endif
)
{
stylingDataShading.opacityFalloff *= llllllll13;
stylingDataShading.sizeFalloff *= llllllll13;
}
if (positionAndBlendingDataShading.isInverted == 1)
{
lllllllllllllllllllllllllll17 = 1 - saturate(lllllllllllllllllllllllllll17);
}
if (stylingDataShading.style == 0)
{
float lllllllllllllllllllllll17 = stylingDataShading.density;
float lllllllllllllllllll5 = stylingDataShading.size;
lllllllllllllllllll5 = stylingDataShading.size / 2;
if (lllllllllllllllllllllllll11 == 0)
{
lllllllllllllllllllllll12 = llllllllllllllllllllllllll11;
}
else
{
lllllllllllllllllllllll12 = llllll10;
}
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SHADING_STYLING_NUMBER_OF_CELLS_HATCHING
lllllllllllllllllllllll12 = _SHADING_STYLING_NUMBER_OF_CELLS_HATCHING;
#endif
#endif
float llllllllllllllllllllllllllllll17 = (1. / lllllllllllllllllllllll12) * llllllllllllllllllllllllllll11;
int lllllllllllllllllllllllllllllll17 = ceil((max(lllllllllllllllllllllllllll17 - llllllllllllllllllllllllllllll17, 0)) * lllllllllllllllllllllll12);
lllllllllllllllllllllllllllllll17 = lllllllllllllllllllllll12 - lllllllllllllllllllllllllllllll17;
float l18 = stylingDataShading.rotation;
float ll18 = radians(l18);
float lll18 = stylingDataShading.rotationBetweenCells;
float llll18 = radians(lll18);
float2 lllll18;
NoiseSampleData noiseSampleData;
lllllllllllllllllllllllll17 = 1;
float lllllllllllllllll1 = 0;
#if _USE_OPTIMIZATION_DEFINES
[unroll(lllllllllllllllllllllll12)]
#else
[unroll(15)]
#endif
for (int i = 1; i <= lllllllllllllllllllllllllllllll17; i++)
{
lllllllllllllllllll5 = stylingDataShading.size / 2;
float lllllll18 = i - 1;
float lll5 = ll18 + llll18 * lllllll18;
llllllllllllllllllll17 += lllllllllllllllll1;
lllll18 = RotateUVRadians(llllllllllllllllllll17, lll5);
noiseSampleData = SampleNoiseData(lllll18, stylingDataShading, stylingRandomDataShading, requiredNoiseDataShading, lllllllllllllllll7, llllllllllllllllll7);
lllllllllllllllll1 += (float) stylingDataShading.density;
float lllllllll18 = lllll18.x;
float llllllllll18 = lllll18.y;
float llll8 = max(stylingDataShading.dashDensity, 0.0001);
lllllllll18 *= stylingDataShading.density;
llllllllll18 *= llll8;
float llllllllllll18 = floor(lllllllll18);
float lllllllllllll18 = llllllllll18;
float llllllllllllll18 = llllllllllllllllllllllllllllll7 ? fwidth(lllllllll18) : 0.0;
if (stylingRandomDataShading.enableRandomizer == 1)
{
lllllllll18 += noiseSampleData.perlinNoise * stylingRandomDataShading.noiseIntensity;
llllllllll18 += noiseSampleData.perlinNoise * stylingRandomDataShading.noiseIntensity;
lllllllllllll18 = llllllllll18;
llllllllllllll18 = llllllllllllllllllllllllllllll7 ? fwidth(lllllllll18) : 0.0;
float llllllll8 = 0;
if (stylingRandomDataShading.thicknessRandomMode == 0)
{
llllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomDataShading.thicknessRandomMode == 1)
{
llllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllll8 = ((noiseSampleData.perlinNoiseFloored) + noiseSampleData.whiteNoise) / 2;
}
float lllllllll8 = remap(0, 1, 0.0, lllllllllllllllllll5, llllllll8 * stylingRandomDataShading.thicknesshRandomIntensity);
lllllllllllllllllll5 -= lllllllll8;
float llllllllll8 = 0;
if (stylingRandomDataShading.spacingRandomMode == 0)
{
llllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomDataShading.spacingRandomMode == 1)
{
llllllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllllll8 = ((noiseSampleData.perlinNoiseFloored) + noiseSampleData.whiteNoise) / 2;
}
float lllllllllll8 = lllllllllllllllllll5;
if (stylingDataShading.dashEnabled == 1 && _StylingShadingDashesType == 1)
{
lllllllllll8 = CalculateHatchingDashSafeSpacingHalfWidth(
lllllllllllllllllll5,
stylingDataShading.hardness,
llllllllllllll18,
llllllllllllllllllllllllllllll7
);
}
float llllllllllll8 = remap(0, 1, -0.5 + lllllllllll8, 0.5 - lllllllllll8, llllllllll8);
lllllllll18 += llllllllllll8 * stylingRandomDataShading.spacingRandomIntensity * saturate(1 - stylingRandomDataShading.noiseIntensity);
}
lllllllll18 = abs(frac(lllllllll18) - 0.5);
float llllllllllllllllllll18 = (float) (lllllllllllllllllllllll12 - i) / lllllllllllllllllllllll12;
float lllllllllllllllllllll18 = remap(0, 1, 0, llllllllllllllllllllllllllllll17, llllllllllllllllllllllllllll11);
float lllllllllll5;
float lllllllllllllll8;
float llllllllllllllllllllllll18 = 0;
if (stylingRandomDataShading.enableRandomizer == 1)
{
float llllllllllllll8 = 0;
if (stylingRandomDataShading.lengthRandomMode == 0)
{
llllllllllllll8 = noiseSampleData.whiteNoise * saturate(1 - stylingRandomDataShading.noiseIntensity);
}
else if (stylingRandomDataShading.lengthRandomMode == 1)
{
llllllllllllll8 = noiseSampleData.perlinNoiseFloored;
}
else
{
llllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + (noiseSampleData.whiteNoise * saturate(1 - stylingRandomDataShading.noiseIntensity))) / 2);
}
lllllllllllllll8 = llllllllllllll8 * stylingRandomDataShading.lengthRandomIntensity;
llllllllllllllllllllllll18 = remap(0, 1, 0, llllllllllllllllllll18 + lllllllllllllllllllll18, lllllllllllllll8);
}
lllllllllll5 = remap(0, llllllllllllllllllll18 + lllllllllllllllllllll18 - llllllllllllllllllllllll18, 0, 1, lllllllllllllllllllllllllll17);
if (i == lllllllllllllllllllllll12 && sign(lllllllllllllllllllllllllll17) == 1)
{
float llllllllllllllllllllllll18 = 0;
if (stylingRandomDataShading.enableRandomizer == 1)
{
llllllllllllllllllllllll18 = remap(0, 1, 0, 1 - llllllllllllllllllllllllllllll17, lllllllllllllll8);
}
lllllllllll5 = remap(0, llllllllllllllllllllllllllllll17, 1 - llllllllllllllllllllllllllllll17 + llllllllllllllllllllllll18, 1 + llllllllllllllllllllllll18, lllllllllllllllllllllllllll17);
}
if (i == lllllllllllllllllllllll12 && sign(lllllllllllllllllllllllllll17) == -1)
{
float lllllllllllllllllllllllllll18 = (float) 1. / lllllllllllllllllllllll12;
lllllllllllllllllllll18 = remap(0, 1, 0, lllllllllllllllllllllllllll18, llllllllllllllllllllllllllll11);
float llllllllllllllllllllllll18 = 0;
if (stylingRandomDataShading.enableRandomizer == 1)
{
llllllllllllllllllllllll18 = remap(0, 1, 0, 1 - lllllllllllllllllllll18, lllllllllllllll8);
}
lllllllllll5 = remap(0, -1, 1 - lllllllllllllllllllll18 + llllllllllllllllllllllll18, 0, lllllllllllllllllllllllllll17);
}
float llllllllllllllll8 = smoothstep(1 - stylingDataShading.sizeFalloff, 1, lllllllllll5);
if (llllllllllllllllllllllllllll15 <= 0 && lllllllllllllllllllllllllll17 > 0)
{
}
llllllllllllllll8 = max(lllllllllllllllllll5 - llllllllllllllll8, 0);
float llllllllllllllllllllllllllllll18;
if (stylingRandomDataShading.enableRandomizer == 1)
{
float llllllllllllllllll8 = 0;
if (stylingRandomDataShading.hardnessRandomMode == 0)
{
llllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomDataShading.hardnessRandomMode == 1)
{
llllllllllllllllll8 = noiseSampleData.perlinNoiseFloored * 5;
}
else
{
llllllllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + noiseSampleData.whiteNoise) / 2) * 5;
}
llllllllllllllllllllllllllllll18 = remap(0, 1, 0, llllllllllllllll8, min(saturate(stylingDataShading.hardness - llllllllllllllllll8 * stylingRandomDataShading.hardnessRandomIntensity), stylingDataShading.hardness));
}
else
{
llllllllllllllllllllllllllllll18 = remap(0, 1, 0, llllllllllllllll8, stylingDataShading.hardness);
}
float l19 = (llllllllllllllll8 > 0.0001) ? saturate(llllllllllllllllllllllllllllll18 / max(llllllllllllllll8, 0.0001)) : stylingDataShading.hardness;
float llllllllllll6 = lllllllll18;
float lllllllllll6 = CalculateHatching1DMaskFromDistance(
llllllllllll6,
llllllllllllllll8,
l19,
lllllllllllllllllll5,
stylingDataShading.size,
llllllllllllll18,
llllllllllllllllllllllllllllll7
);
lllllllll18 = lllllllllll6;
if (stylingDataShading.dashEnabled == 1 && i == 1)
{
float llllllllllllllllllll8 = CalculateHatchingDashContinuity(
stylingDataShading.dashTransitionPosition,
stylingDataShading.dashTransitionSoftness,
lllllllllll5
);
float lllllllllllllllllllll8 = saturate(stylingDataShading.dashLength) * 0.5;
float lllllllllllllll6 = lerp(lllllllllllllllllllll8, 0.5, llllllllllllllllllll8);
llllllllll18 += llllllllllll18 * saturate(stylingDataShading.dashOffset);
float lllllll19 = llllllllllllllllllllllllllllll7 ? fwidth(lllllllllllll18) : 0.0;
float lllllllllllll6 = abs(frac(llllllllll18) - 0.5);
lllllllll18 = ApplyHatchingDashMode(
lllllllllll6,
llllllllllll6,
lllllllllllll6,
llllllllllllllll8,
lllllllllllllll6,
l19,
llllllllllllll18,
lllllll19,
stylingDataShading.dashType,
stylingDataShading.dashRoundness,
llllllllllllllllllllllllllllll7
);
}
if (stylingRandomDataShading.enableRandomizer == 1)
{
float lllllllllllllllllllllllll8;
if (stylingRandomDataShading.opacityRandomMode == 0)
{
lllllllllllllllllllllllll8 = noiseSampleData.whiteNoise;
}
else if (stylingRandomDataShading.opacityRandomMode == 1)
{
lllllllllllllllllllllllll8 = noiseSampleData.perlinNoiseFloored * 5;
}
else
{
lllllllllllllllllllllllll8 = ((noiseSampleData.perlinNoiseFloored + noiseSampleData.whiteNoise) / 2) * 5;
}
lllllllll18 = saturate(lllllllll18 - (lllllllllllllllllllllllll8 * stylingRandomDataShading.opacityRandomIntensity));
}
float llllllllllllllllllllllllll8 = smoothstep(saturate(min(1 - stylingDataShading.opacityFalloff, 1)), 1, lllllllllll5);
lllllllll18 *= 1 - llllllllllllllllllllllllll8;
lllllllll18 = 1 - lllllllll18;
lllllllllllllllllllllllll17 = min(lllllllll18, lllllllllllllllllllllllll17);
}
lllllllllllllllllllllllll17 = 1 - lllllllllllllllllllllllll17;
lllllllllllllllllllllllll17 *= stylingDataShading.opacity;
lllllllllllllllllllllllll17 = 1 - lllllllllllllllllllllllll17;
llllllllllllllllllllllllll17 = lllllllllllllllllllllllll17;
}
else if (stylingDataShading.style == 1)
{
float2 llllllllllllllllllllllllllllll8 = llllllllllllllllllll17;
float2 lllllllllllllllllllllllllllllll4 = RotateUV(llllllllllllllllllllllllllllll8, stylingDataShading.rotation);
NoiseSampleData noiseSampleData = SampleNoiseData(lllllllllllllllllllllllllllllll4, stylingDataShading, stylingRandomDataShading, requiredNoiseDataShading, lllllllllllllllll7, llllllllllllllllll7);
if (false)
{
}
float lllllllllllll19 = 1 - lllllllllllllllllllllllllll17;
float llllllllllllll9 = Halftones(lllllllllllll19, lllllllllllllllllllllllllllllll4, stylingDataShading, stylingRandomDataShading, noiseSampleData);
llllllllllllllllllllllllll17 = llllllllllllll9;
}
if (false)
{
}
#ifdef _EMISSION
llllllllllllllllllllllllll17 = 1 - llllllllllllllllllllllllll17;
llllllllllllllllllllllllll17 = saturate(llllllllllllllllllllllllll17 - llllllllllllllllll17);
llllllllllllllllllllllllll17 = 1 - llllllllllllllllllllllllll17;
#endif
#if _USE_OPTIMIZATION_DEFINES
#if _ENABLE_STYLING_DISTANCEFADE
generalStylingData.enableDistanceFade = 1;
#else
generalStylingData.enableDistanceFade = 0;
#endif
#endif
if (generalStylingData.enableDistanceFade == 1)
{
float lllllllllllllll19 = lllllllllllllllllllllllllll17;
if (stylingDataShading.style == 0)
{
int lllllllllllllllllllllll12;
if (lllllllllllllllllllllllll11 == 0)
{
lllllllllllllllllllllll12 = llllllllllllllllllllllllll11;
}
else
{
lllllllllllllllllllllll12 = llllll10;
}
float llllllllllllllllllllllllllllll17 = (1. / lllllllllllllllllllllll12) * llllllllllllllllllllllllllll11;
float lllllllllllllllllllll18 = remap(0, 1, 0, llllllllllllllllllllllllllllll17, llllllllllllllllllllllllllll11);
lllllllllllllll19 -= -1 + ((lllllllllllllllllllllll12 - 1.) / lllllllllllllllllllllll12) + lllllllllllllllllllll18;
}
float lllllllllllllllllll19 = distance(_WorldSpaceCameraPos, d.worldSpacePosition);
float llllllllllllllllllll19 = max(lllllllllllllll19, 1 - stylingDataShading.opacityFalloff);
llllllllllllllllllll19 = remap(1 - stylingDataShading.opacityFalloff, 1, 0, 1, llllllllllllllllllll19);
float lllllllllllllllllllll19 = max(lllllllllllllll19, 1 - stylingDataShading.sizeFalloff);
lllllllllllllllllllll19 = remap(1 - stylingDataShading.sizeFalloff, 1, 0, 1, lllllllllllllllllllll19);
float llllllllllllllllllllll19 = lerp(0.0, 1, saturate(1 - stylingDataShading.size));
if (generalStylingData.adjustDistanceFadeValue == 1)
{
llllllllllllllllllllll19 = generalStylingData.distanceFadeValue;
}
lllllllllllllllllllll19 = max(llllllllllllllllllllll19, lllllllllllllllllllll19 * 2);
llllllllllllllllllll19 = max(llllllllllllllllllllll19, llllllllllllllllllll19);
float lllllllllllllllllllllll19 = max(lllllllllllllllllllll19, llllllllllllllllllll19);
lllllllllllllllllllllll19 = saturate(lllllllllllllllllllllll19);
llllllllllllllllllllllllll17 = lerp(llllllllllllllllllllllllll17, lllllllllllllllllllllll19, saturate(((lllllllllllllllllll19 - generalStylingData.distanceFadeStartDistance) / generalStylingData.distanceFadeFalloff)));
}
if (positionAndBlendingDataShading.isInverted == 1)
{
llllllllllllllllllllllllll17 = 1 - llllllllllllllllllllllllll17;
}
DoBlending(lllllllllllllllll9, 1 - llllllllllllllllllllllllll17, positionAndBlendingDataShading.blending, stylingDataShading.color);
if (false)
{
}
if (false)
{
}
}
#endif
#if _URP
if (_LightSource != 1)
#endif
{
#if (_ENABLE_CASTSHADOWS_STYLING && _STYLING_CASTSHADOWS_SYNC_WITH_OTHER_STYLING != 1) || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (lllllllllllllllllllllllllllll11 && llllllllllllllllllllllllllllll11 != 1)
#endif
{
#if _USE_OPTIMIZATION_DEFINES
#ifdef _CASTSHADOWS_STYLING_BLENDING
positionAndBlendingDataCastShadows.blending = _CASTSHADOWS_STYLING_BLENDING;
#endif
#ifdef _CASTSHADOWS_STYLING_DRAWSPACE
uvSpaceDataCastShadows.drawSpace = _CASTSHADOWS_STYLING_DRAWSPACE;
#endif
#ifdef _CASTSHADOWS_STYLING_COORDINATESYSTEM
uvSpaceDataCastShadows.coordinateSystem = _CASTSHADOWS_STYLING_COORDINATESYSTEM;
#endif
#ifdef _CASTSHADOWS_STYLE
stylingDataCastShadows.style = _CASTSHADOWS_STYLE;
#endif
#if _CASTSHADOWS_STYLING_RANDOMIZER
stylingRandomDataCastShadows.enableRandomizer = 1;
#else
stylingRandomDataCastShadows.enableRandomizer = 0;
#endif
#endif
RequiredNoiseData requiredNoiseDataCastShadows;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _CASTSHADOWS_STYLING_RANDOMIZER_PERLIN
requiredNoiseDataCastShadows.perlinNoise = 1;
#else
requiredNoiseDataCastShadows.perlinNoise = 0;
#endif
#ifdef _CASTSHADOWS_STYLING_RANDOMIZER_PERLIN_FLOORED
requiredNoiseDataCastShadows.perlinNoiseFloored = 1;
#else
requiredNoiseDataCastShadows.perlinNoiseFloored = 0;
#endif
#ifdef _CASTSHADOWS_STYLING_RANDOMIZER_WHITE
requiredNoiseDataCastShadows.whiteNoise = 1;
#else
requiredNoiseDataCastShadows.whiteNoise = 0;
#endif
#ifdef _CASTSHADOWS_STYLING_RANDOMIZER_WHITE_FLOORED
requiredNoiseDataCastShadows.whiteNoiseFloored = 1;
#else
requiredNoiseDataCastShadows.whiteNoiseFloored = 0;
#endif
#else
requiredNoiseDataCastShadows.perlinNoise = 1;
requiredNoiseDataCastShadows.perlinNoiseFloored = 1;
requiredNoiseDataCastShadows.whiteNoise = 1;
requiredNoiseDataCastShadows.whiteNoiseFloored = 1;
#endif
#if _URP
float2 llllllllllllllllllllllll19 = ConvertToDrawSpace(inputData, lllllllll1, uvSpaceDataCastShadows, llllllllllllllllllllllllllll0, uvSets);
#else
float2 llllllllllllllllllllllll19 = ConvertToDrawSpace(d.worldSpacePosition, d.worldSpaceNormal, lllllllll1, uvSpaceDataCastShadows, llllllllllllllllllllllllllll0, uvSets);
#endif
#ifdef _EMISSION
llllllll13 = 1 - llllllll13;
llllllll13 = saturate(llllllll13 - llllllllllllllllll17);
llllllll13 = 1 - llllllll13;
#endif
llllllllllllllllllllllllllll15 = llllllll13;
float llllllllllllllllllllllllll17 = 0;
if (stylingDataCastShadows.style == 0)
{
float lllllllllllllllllllllllllll19 = stylingDataCastShadows.rotation;
float llllllllllllllllllllllllllll19 = radians(lllllllllllllllllllllllllll19);
float lllllllllllllllllllllllllllll19 = stylingDataCastShadows.rotationBetweenCells;
float llllllllllllllllllllllllllllll19 = radians(lllllllllllllllllllllllllllll19);
float lllllllllllllllllllllllllllllll19 = l12;
lllllllllllllllllllllllllllllll19 = min(lllllllllllllllllllllllllllllll19, 0.99);
float l20 = 1;
float lllllllllllllllllllllll12 = lllllllllllllllllllllllllllllll11;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _CASTSHADOWS_STYLING_NUMBER_OF_CELLS_HATCHING
lllllllllllllllllllllll12 = _CASTSHADOWS_STYLING_NUMBER_OF_CELLS_HATCHING;
#endif
[unroll(lllllllllllllllllllllll12)]
#else
[unroll(15)]
#endif
for (int j = 1; j <= lllllllllllllllllllllll12; j++)
{
llllllll13 = min(j / lllllllllllllllllllllll12, llllllllllllllllllllllllllll15);
if (lllllllllllllllllllllll12 != 1)
{
float lllllllllllllllllllllllllll9 = 0;
if (lllllllllllllllllllllll12 <= 1)
{
lllllllllllllllllllllllllll9 = 0.0;
}
else
{
float llll20 = (float) j - 1;
float lllll20 = (float) (lllllllllllllllllllllll12 - 1);
float llllll20 = llll20 / lllll20;
lllllllllllllllllllllllllll9 = lerp(1.0, llllll20, lllllllllllllllllllllllllllllll19);
}
float lllllll20 = min(lllllllllllllllllllllllllll9, llllllllllllllllllllllllllll15);
lllllll20 = remap(0, lllllllllllllllllllllllllll9, 0, 1, llllllllllllllllllllllllllll15);
llllllll13 = lllllll20;
llllllll13 = max(llllllll13, llllllllllllllllllllllllllll15);
}
else
{
llllllll13 = llllllllllllllllllllllllllll15;
}
float lllllll18 = j - 1;
float lll5 = llllllllllllllllllllllllllll19 + llllllllllllllllllllllllllllll19 * lllllll18;
float2 lllll18 = RotateUVRadians(llllllllllllllllllllllll19, lll5);
lllll18.x += (j - 1) / (float) lllllllllllllllllllllll12 * stylingDataCastShadows.density;
NoiseSampleData noiseSampleData = SampleNoiseData(lllll18, stylingDataCastShadows, stylingRandomDataCastShadows, requiredNoiseDataCastShadows, lllllllllllllllll7, llllllllllllllllll7);
float lllllllllll20 = Hatching(1 - llllllll13, lllll18, stylingDataCastShadows, stylingRandomDataCastShadows, noiseSampleData, llllllllllllllllllllllllllllll7);
lllllllllll20 = 1 - lllllllllll20;
{
l20 = min(lllllllllll20, l20);
}
}
llllllllllllllllllllllllll17 = l20;
}
else if (stylingDataCastShadows.style == 1)
{
float2 lllllllllllllllllllllllllllllll4 = RotateUV(llllllllllllllllllllllll19, stylingDataCastShadows.rotation);
NoiseSampleData noiseSampleData = SampleNoiseData(lllllllllllllllllllllllllllllll4, stylingDataCastShadows, stylingRandomDataCastShadows, requiredNoiseDataCastShadows, lllllllllllllllll7, llllllllllllllllll7);
float llllllllllllll9 = Halftones(1 - llllllll13, lllllllllllllllllllllllllllllll4, stylingDataCastShadows, stylingRandomDataCastShadows, noiseSampleData);
llllllllllllllllllllllllll17 = llllllllllllll9;
}
DoBlending(lllllllllllllllll9, 1 - llllllllllllllllllllllllll17, positionAndBlendingDataCastShadows.blending, stylingDataCastShadows.color);
}
#endif
}
#if _URP
if (_LightSource != 1)
#endif
{
#if _ENABLE_SPECULAR_STYLING || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (ll12)
#endif
{
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SPECULAR_STYLING_BLENDING
positionAndBlendingDataSpecular.blending = _SPECULAR_STYLING_BLENDING;
#endif
#ifdef _SPECULAR_STYLING_DRAWSPACE
uvSpaceDataSpecular.drawSpace = _SPECULAR_STYLING_DRAWSPACE;
#endif
#ifdef _SPECULAR_STYLING_COORDINATESYSTEM
uvSpaceDataSpecular.coordinateSystem = _SPECULAR_STYLING_COORDINATESYSTEM;
#endif
#ifdef _SPECULAR_STYLE
stylingDataSpecular.style = _SPECULAR_STYLE;
#endif
#if _SPECULAR_STYLING_RANDOMIZER
stylingRandomDataSpecular.enableRandomizer = 1;
#else
stylingRandomDataSpecular.enableRandomizer = 0;
#endif
#endif
RequiredNoiseData requiredNoiseDataSpecular;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SPECULAR_STYLING_RANDOMIZER_PERLIN
requiredNoiseDataSpecular.perlinNoise = 1;
#else
requiredNoiseDataSpecular.perlinNoise = 0;
#endif
#ifdef _SPECULAR_STYLING_RANDOMIZER_PERLIN_FLOORED
requiredNoiseDataSpecular.perlinNoiseFloored = 1;
#else
requiredNoiseDataSpecular.perlinNoiseFloored = 0;
#endif
#ifdef _SPECULAR_STYLING_RANDOMIZER_WHITE
requiredNoiseDataSpecular.whiteNoise = 1;
#else
requiredNoiseDataSpecular.whiteNoise = 0;
#endif
#ifdef _SPECULAR_STYLING_RANDOMIZER_WHITE_FLOORED
requiredNoiseDataSpecular.whiteNoiseFloored = 1;
#else
requiredNoiseDataSpecular.whiteNoiseFloored = 0;
#endif
#else
requiredNoiseDataSpecular.perlinNoise = 1;
requiredNoiseDataSpecular.perlinNoiseFloored = 1;
requiredNoiseDataSpecular.whiteNoise = 1;
requiredNoiseDataSpecular.whiteNoiseFloored = 1;
#endif
#if _URP
float2 llllllllllllll20 = ConvertToDrawSpace(inputData, lllllllll1, uvSpaceDataSpecular, llllllllllllllllllllllllllll0, uvSets);
#else
float2 llllllllllllll20 = ConvertToDrawSpace(d.worldSpacePosition, d.worldSpaceNormal, lllllllll1, uvSpaceDataSpecular, llllllllllllllllllllllllllll0, uvSets);
#endif
float2 lllllllllllllllllllllllllllllll4 = RotateUV(llllllllllllll20, stylingDataSpecular.rotation);
llllllllllllll20 = lllllllllllllllllllllllllllllll4;
NoiseSampleData noiseSampleData = SampleNoiseData(llllllllllllll20, stylingDataSpecular, stylingRandomDataSpecular, requiredNoiseDataSpecular, lllllllllllllllll7, llllllllllllllllll7);
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SPECULAR_STYLE
stylingDataSpecular.style = _SPECULAR_STYLE;
#endif
#endif
float llllllllllllllllllllllllll17 = 0;
if (stylingDataSpecular.style == 0)
{
llllllllllllllllllllllllll17 = Hatching(lllllllllll13, llllllllllllll20, stylingDataSpecular, stylingRandomDataSpecular, noiseSampleData, llllllllllllllllllllllllllllll7);
llllllllllllllllllllllllll17 = 1 - llllllllllllllllllllllllll17;
}
else if (stylingDataSpecular.style == 1)
{
float llllllllllllll9 = Halftones(lllllllllll13, llllllllllllll20, stylingDataSpecular, stylingRandomDataSpecular, noiseSampleData);
llllllllllllllllllllllllll17 = llllllllllllll9;
}
#if _USE_OPTIMIZATION_DEFINES
#ifdef _SPECULAR_STYLING_BLENDING
positionAndBlendingDataSpecular.blending = _SPECULAR_STYLING_BLENDING;
#endif
#endif
half4 llllllllll17;
if (lllllll12 == 1)
{
llllllllll17 = half4(llllllllllll13, 1);
}
else
{
llllllllll17 = stylingDataSpecular.color;
}
DoBlending(lllllllllllllllll9, 1 - llllllllllllllllllllllllll17, positionAndBlendingDataSpecular.blending, llllllllll17);
}
#endif
}
#if _ENABLE_RIM_STYLING || !_USE_OPTIMIZATION_DEFINES
#if !_USE_OPTIMIZATION_DEFINES
if (lllllllll12)
#endif
{
#if _USE_OPTIMIZATION_DEFINES
#ifdef _RIM_STYLING_BLENDING
positionAndBlendingDataRim.blending = _RIM_STYLING_BLENDING;
#endif
#ifdef _RIM_STYLING_DRAWSPACE
uvSpaceDataRim.drawSpace = _RIM_STYLING_DRAWSPACE;
#endif
#ifdef _RIM_STYLING_COORDINATESYSTEM
uvSpaceDataRim.coordinateSystem = _RIM_STYLING_COORDINATESYSTEM;
#endif
#ifdef _RIM_STYLE
stylingDataRim.style = _RIM_STYLE;
#endif
#if _RIM_STYLING_RANDOMIZER
stylingRandomDataRim.enableRandomizer = 1;
#else
stylingRandomDataRim.enableRandomizer = 0;
#endif
#endif
RequiredNoiseData requiredNoiseDataRim;
#if _USE_OPTIMIZATION_DEFINES
#ifdef _RIM_STYLING_RANDOMIZER_PERLIN
requiredNoiseDataRim.perlinNoise = 1;
#else
requiredNoiseDataRim.perlinNoise = 0;
#endif
#ifdef _RIM_STYLING_RANDOMIZER_PERLIN_FLOORED
requiredNoiseDataRim.perlinNoiseFloored = 1;
#else
requiredNoiseDataRim.perlinNoiseFloored = 0;
#endif
#ifdef _RIM_STYLING_RANDOMIZER_WHITE
requiredNoiseDataRim.whiteNoise = 1;
#else
requiredNoiseDataRim.whiteNoise = 0;
#endif
#ifdef _RIM_STYLING_RANDOMIZER_WHITE_FLOORED
requiredNoiseDataRim.whiteNoiseFloored = 1;
#else
requiredNoiseDataRim.whiteNoiseFloored = 0;
#endif
#else
requiredNoiseDataRim.perlinNoise = 1;
requiredNoiseDataRim.perlinNoiseFloored = 1;
requiredNoiseDataRim.whiteNoise = 1;
requiredNoiseDataRim.whiteNoiseFloored = 1;
#endif
#if _URP
float2 lllllllllllllllllllll20 = ConvertToDrawSpace(inputData, lllllllll1, uvSpaceDataRim, llllllllllllllllllllllllllll0, uvSets);
#else
float2 lllllllllllllllllllll20 = ConvertToDrawSpace(d.worldSpacePosition, d.worldSpaceNormal, lllllllll1, uvSpaceDataRim, llllllllllllllllllllllllllll0, uvSets);
#endif
float2 lllllllllllllllllllllllllllllll4 = RotateUV(lllllllllllllllllllll20, stylingDataRim.rotation);
NoiseSampleData noiseSampleData = SampleNoiseData(lllllllllllllllllllllllllllllll4, stylingDataRim, stylingRandomDataRim, requiredNoiseDataRim, lllllllllllllllll7, llllllllllllllllll7);
if (llllllllllll11 == 0 || llllllllll12 == 0)
{
#if _URP
Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask);
float llllllllllll17 = dot(mainLight.direction, lllllllllllllllllllllllllll3);
float lllllllllllll17 = mainLight.shadowAttenuation;
lllll4 = CalculateRimMask(llllllllllllllllllllllllllll12, lllllllllllllllllllllllllll1, lllllllllll12, llllllllllll12, llllllllllll17, lllllllllllll12, lllllllllllllllllllllllllllll10, lllllllllllllllllllllll10, lllllllllllll17);
#else
lllll4 = CalculateRimMask(llllllllllllllllllllllllllll12, lllllllllllllllllllllllllll1, lllllllllll12, llllllllllll12, llllllllllllllllllllllllllllll1, lllllllllllll12, lllllllllllllllllllllllllllll10, lllllllllllllllllllllll10, llll4);
#endif
}
lllll4 = saturate(lllll4 - lllllllllllllllllllllllllllllll1 * 10);
float llllllllllllllllllllllllll17 = 0;
if (stylingDataRim.style == 0)
{
llllllllllllllllllllllllll17 = Hatching(lllll4, lllllllllllllllllllllllllllllll4, stylingDataRim, stylingRandomDataRim, noiseSampleData, llllllllllllllllllllllllllllll7);
llllllllllllllllllllllllll17 = 1 - llllllllllllllllllllllllll17;
}
else if (stylingDataRim.style == 1)
{
float llllllllllllll9 = Halftones(lllll4, lllllllllllllllllllllllllllllll4, stylingDataRim, stylingRandomDataRim, noiseSampleData);
llllllllllllllllllllllllll17 = llllllllllllll9;
}
DoBlending(lllllllllllllllll9, 1 - llllllllllllllllllllllllll17, positionAndBlendingDataRim.blending, stylingDataRim.color);
}
#endif
}
#endif
}
void AddTheToonShader(inout float4 albedo,
#if _URP
InputData inputData,
SurfaceData surface,
#else
#if _USESPECULAR || _USESPECULARWORKFLOW || _SPECULARFROMMETALLIC
SurfaceOutputStandardSpecular o,
#elif _BDRFLAMBERT || _BDRF3 || _SIMPLELIT
SurfaceOutput o,
#else
SurfaceOutputStandard o,
#endif
UnityGI gi,
#if !_PASSFORWARDADD
UnityGIInput giInput,
#endif
#endif
ShaderData d
#if _URP
#if UNITY_VERSION >= 202120
, float3 normalTS
#endif
#endif
)
{
float2 uv = d.texcoord0.xy;
UVSets uvSets;
uvSets.uv0 = d.texcoord0.xy;
uvSets.uv1 = d.texcoord1.xy;
uvSets.uv2 = d.texcoord2.xy;
uvSets.uv3 = d.texcoord3.xy;
float3 pureNormal = d.worldSpaceNormal;
float4 screenUV = d.extraV2F0;
UVSpaceData uvSpaceDataShading;
uvSpaceDataShading.drawSpace = _DrawSpace;
uvSpaceDataShading.uvSet = _UVSet;
uvSpaceDataShading.coordinateSystem = _CoordinateSystem;
uvSpaceDataShading.polarCenterMode = _PolarCenterMode;
uvSpaceDataShading.polarCenter = _PolarCenter;
uvSpaceDataShading.sSCameraDistanceScaled = _SSCameraDistanceScaled;
uvSpaceDataShading.anchorSSToObjectsOrigin = _AnchorSSToObjectsOrigin;
UVSpaceData uvSpaceDataCastShadows;
uvSpaceDataCastShadows.drawSpace = _CastShadowsDrawSpace;
uvSpaceDataCastShadows.uvSet = _CastShadowsUVSet;
uvSpaceDataCastShadows.coordinateSystem = _CastShadowsCoordinateSystem;
uvSpaceDataCastShadows.polarCenterMode = _CastShadowsPolarCenterMode;
uvSpaceDataCastShadows.polarCenter = _CastShadowsPolarCenter;
uvSpaceDataCastShadows.sSCameraDistanceScaled = _CastShadowsSSCameraDistanceScaled;
uvSpaceDataCastShadows.anchorSSToObjectsOrigin = _CastShadowsAnchorSSToObjectsOrigin;
UVSpaceData uvSpaceDataSpecular;
uvSpaceDataSpecular.drawSpace = _SpecularDrawSpace;
uvSpaceDataSpecular.uvSet = _SpecularUVSet;
uvSpaceDataSpecular.coordinateSystem = _SpecularCoordinateSystem;
uvSpaceDataSpecular.polarCenterMode = _SpecularPolarCenterMode;
uvSpaceDataSpecular.polarCenter = _SpecularPolarCenter;
uvSpaceDataSpecular.sSCameraDistanceScaled = _SpecularSSCameraDistanceScaled;
uvSpaceDataSpecular.anchorSSToObjectsOrigin = _SpecularAnchorSSToObjectsOrigin;
UVSpaceData uvSpaceDataRim;
uvSpaceDataRim.drawSpace = _RimDrawSpace;
uvSpaceDataRim.uvSet = _RimUVSet;
uvSpaceDataRim.coordinateSystem = _RimCoordinateSystem;
uvSpaceDataRim.polarCenterMode = _RimPolarCenterMode;
uvSpaceDataRim.polarCenter = _RimPolarCenter;
uvSpaceDataRim.sSCameraDistanceScaled = _RimSSCameraDistanceScaled;
uvSpaceDataRim.anchorSSToObjectsOrigin = _RimAnchorSSToObjectsOrigin;
GeneralStylingData generalStylingData;
generalStylingData.enableDistanceFade = _EnableStylingDistanceFade;
generalStylingData.distanceFadeStartDistance = _StylingDFStartingDistance;
generalStylingData.distanceFadeFalloff = _StylingDFFalloff;
generalStylingData.adjustDistanceFadeValue = _StylingAdjustDistanceFadeValue;
generalStylingData.distanceFadeValue = _StylingDistanceFadeValue;
StylingData stylingDataShading;
stylingDataShading.style = _ShadingStyle;
stylingDataShading.type = 0;
stylingDataShading.color = _StylingColor;
stylingDataShading.rotation = _StylingShadingInitialDirection;
stylingDataShading.rotationBetweenCells = _StylingShadingRotationBetweenCells;
stylingDataShading.density = _StylingShadingDensity;
stylingDataShading.offset = _StylingShadingHalftonesOffset;
stylingDataShading.size = _StylingShadingThickness;
stylingDataShading.sizeControl = _StylingShadingThicknessControl;
stylingDataShading.sizeFalloff = _StylingShadingThicknessFalloff;
stylingDataShading.roundness = _StylingShadingHalftonesRoundness;
stylingDataShading.roundnessFalloff = _StylingShadingHalftonesRoundnessFalloff;
stylingDataShading.hardness = _StylingShadingHardness;
stylingDataShading.opacity = _StylingShadingOpacity;
stylingDataShading.opacityFalloff = _StylingShadingOpacityFalloff;
stylingDataShading.dashEnabled = _StylingShadingEnableDashes;
stylingDataShading.dashType = _StylingShadingDashesType;
stylingDataShading.dashLength = _StylingShadingDashesSize;
stylingDataShading.dashDensity = _StylingShadingDashesUseHatchingDensity == 1 ? _StylingShadingDensity : _StylingShadingDashesDensity;
stylingDataShading.dashTransitionPosition = _StylingShadingDashesTransitionPosition;
stylingDataShading.dashTransitionSoftness = _StylingShadingDashesTransitionSoftness;
stylingDataShading.dashRoundness = _StylingShadingDashesRoundness;
stylingDataShading.dashOffset = _StylingShadingDashesOffset;
StylingData stylingDataSpecular;
stylingDataSpecular.style = _SpecularStyle;
stylingDataSpecular.type = 1;
stylingDataSpecular.color = _StylingSpecularColor;
stylingDataSpecular.rotation = _StylingSpecularRotation;
stylingDataSpecular.density = _StylingSpecularDensity;
stylingDataSpecular.offset = _StylingSpecularHalftonesOffset;
stylingDataSpecular.size = _StylingSpecularThickness;
stylingDataSpecular.sizeControl = _StylingSpecularThicknessControl;
stylingDataSpecular.sizeFalloff = _StylingSpecularThicknessFalloff;
stylingDataSpecular.roundness = _StylingSpecularHalftonesRoundness;
stylingDataSpecular.roundnessFalloff = _StylingSpecularHalftonesRoundnessFalloff;
stylingDataSpecular.hardness = _StylingSpecularHardness;
stylingDataSpecular.opacity = _StylingSpecularOpacity;
stylingDataSpecular.opacityFalloff = _StylingSpecularOpacityFalloff;
stylingDataSpecular.dashEnabled = _StylingSpecularEnableDashes;
stylingDataSpecular.dashType = _StylingSpecularDashesType;
stylingDataSpecular.dashLength = _StylingSpecularDashesSize;
stylingDataSpecular.dashDensity = _StylingSpecularDashesUseHatchingDensity == 1 ? _StylingSpecularDensity : _StylingSpecularDashesDensity;
stylingDataSpecular.dashTransitionPosition = _StylingSpecularDashesTransitionPosition;
stylingDataSpecular.dashTransitionSoftness = _StylingSpecularDashesTransitionSoftness;
stylingDataSpecular.dashRoundness = _StylingSpecularDashesRoundness;
stylingDataSpecular.dashOffset = _StylingSpecularDashesOffset;
StylingData stylingDataCastShadows;
stylingDataCastShadows.style = _CastShadowsStyle;
stylingDataCastShadows.type = 1;
stylingDataCastShadows.color = _StylingCastShadowsColor;
stylingDataCastShadows.rotation = _StylingCastShadowsInitialDirection;
stylingDataCastShadows.rotationBetweenCells = _StylingCastShadowsRotationBetweenCells;
stylingDataCastShadows.density = _StylingCastShadowsDensity;
stylingDataCastShadows.offset = _StylingCastShadowsHalftonesOffset;
stylingDataCastShadows.size = _StylingCastShadowsThickness;
stylingDataCastShadows.sizeControl = _StylingCastShadowsThicknessControl;
stylingDataCastShadows.sizeFalloff = _StylingCastShadowsThicknessFalloff;
stylingDataCastShadows.roundness = _StylingCastShadowsHalftonesRoundness;
stylingDataCastShadows.roundnessFalloff = _StylingCastShadowsHalftonesRoundnessFalloff;
stylingDataCastShadows.hardness = _StylingCastShadowsHardness;
stylingDataCastShadows.opacity = _StylingCastShadowsOpacity;
stylingDataCastShadows.opacityFalloff = _StylingCastShadowsOpacityFalloff;
stylingDataCastShadows.dashEnabled = _StylingCastShadowsEnableDashes;
stylingDataCastShadows.dashType = _StylingCastShadowsDashesType;
stylingDataCastShadows.dashLength = _StylingCastShadowsDashesSize;
stylingDataCastShadows.dashDensity = _StylingCastShadowsDashesUseHatchingDensity == 1 ? _StylingCastShadowsDensity : _StylingCastShadowsDashesDensity;
stylingDataCastShadows.dashTransitionPosition = _StylingCastShadowsDashesTransitionPosition;
stylingDataCastShadows.dashTransitionSoftness = _StylingCastShadowsDashesTransitionSoftness;
stylingDataCastShadows.dashRoundness = _StylingCastShadowsDashesRoundness;
stylingDataCastShadows.dashOffset = _StylingCastShadowsDashesOffset;
StylingData stylingDataRim;
stylingDataRim.style = _RimStyle;
stylingDataRim.type = 1;
stylingDataRim.color = _StylingRimColor;
stylingDataRim.rotation = _StylingRimRotation;
stylingDataRim.density = _StylingRimDensity;
stylingDataRim.offset = _StylingRimHalftonesOffset;
stylingDataRim.size = _StylingRimThickness;
stylingDataRim.sizeControl = _StylingRimThicknessControl;
stylingDataRim.sizeFalloff = _StylingRimThicknessFalloff;
stylingDataRim.roundness = _StylingRimHalftonesRoundness;
stylingDataRim.roundnessFalloff = _StylingRimHalftonesRoundnessFalloff;
stylingDataRim.hardness = _StylingRimHardness;
stylingDataRim.opacity = _StylingRimOpacity;
stylingDataRim.opacityFalloff = _StylingRimOpacityFalloff;
stylingDataRim.dashEnabled = _StylingRimEnableDashes;
stylingDataRim.dashType = _StylingRimDashesType;
stylingDataRim.dashLength = _StylingRimDashesSize;
stylingDataRim.dashDensity = _StylingRimDashesUseHatchingDensity == 1 ? _StylingRimDensity : _StylingRimDashesDensity;
stylingDataRim.dashTransitionPosition = _StylingRimDashesTransitionPosition;
stylingDataRim.dashTransitionSoftness = _StylingRimDashesTransitionSoftness;
stylingDataRim.dashRoundness = _StylingRimDashesRoundness;
stylingDataRim.dashOffset = _StylingRimDashesOffset;
PositionAndBlendingData positionAndBlendingDataShading;
positionAndBlendingDataShading.blending = _StylingShadingBlending;
positionAndBlendingDataShading.isInverted = _StylingShadingIsInverted;
PositionAndBlendingData positionAndBlendingDataSpecular;
positionAndBlendingDataSpecular.blending = _StylingSpecularBlending;
positionAndBlendingDataSpecular.isInverted = _StylingSpecularIsInverted;
PositionAndBlendingData positionAndBlendingDataCastShadows;
positionAndBlendingDataCastShadows.blending = _StylingCastShadowsBlending;
positionAndBlendingDataCastShadows.isInverted = _StylingCastShadowsIsInverted;
PositionAndBlendingData positionAndBlendingDataRim;
positionAndBlendingDataRim.blending = _StylingRimBlending;
positionAndBlendingDataRim.isInverted = _StylingRimIsInverted;
StylingRandomData stylingRandomDataShading;
stylingRandomDataShading.enableRandomizer = _EnableShadingRandomizer;
stylingRandomDataShading.perlinNoiseSize = _ShadingNoise1Size;
stylingRandomDataShading.perlinNoiseSeed = _ShadingNoise1Seed;
stylingRandomDataShading.whiteNoiseSeed = _ShadingNoise2Seed;
stylingRandomDataShading.noiseIntensity = _NoiseIntensity;
stylingRandomDataShading.spacingRandomMode = _SpacingRandomMode;
stylingRandomDataShading.spacingRandomIntensity = _SpacingRandomIntensity;
stylingRandomDataShading.opacityRandomMode = _OpacityRandomMode;
stylingRandomDataShading.opacityRandomIntensity = _OpacityRandomIntensity;
stylingRandomDataShading.lengthRandomMode = _LengthRandomMode;
stylingRandomDataShading.lengthRandomIntensity = _LengthRandomIntensity;
stylingRandomDataShading.hardnessRandomMode = _HardnessRandomMode;
stylingRandomDataShading.hardnessRandomIntensity = _HardnessRandomIntensity;
stylingRandomDataShading.thicknessRandomMode = _ThicknessRandomMode;
stylingRandomDataShading.thicknesshRandomIntensity = _ThicknesshRandomIntensity;
StylingRandomData stylingRandomDataSpecular;
stylingRandomDataSpecular.enableRandomizer = _EnableSpecularRandomizer;
stylingRandomDataSpecular.perlinNoiseSize = _SpecularNoise1Size;
stylingRandomDataSpecular.perlinNoiseSeed = _SpecularNoise1Seed;
stylingRandomDataSpecular.whiteNoiseSeed = _SpecularNoise2Seed;
stylingRandomDataSpecular.noiseIntensity = _SpecularNoiseIntensity;
stylingRandomDataSpecular.spacingRandomMode = _SpecularSpacingRandomMode;
stylingRandomDataSpecular.spacingRandomIntensity = _SpecularSpacingRandomIntensity;
stylingRandomDataSpecular.opacityRandomMode = _SpecularOpacityRandomMode;
stylingRandomDataSpecular.opacityRandomIntensity = _SpecularOpacityRandomIntensity;
stylingRandomDataSpecular.lengthRandomMode = _SpecularLengthRandomMode;
stylingRandomDataSpecular.lengthRandomIntensity = _SpecularLengthRandomIntensity;
stylingRandomDataSpecular.hardnessRandomMode = _SpecularHardnessRandomMode;
stylingRandomDataSpecular.hardnessRandomIntensity = _SpecularHardnessRandomIntensity;
stylingRandomDataSpecular.thicknessRandomMode = _SpecularThicknessRandomMode;
stylingRandomDataSpecular.thicknesshRandomIntensity = _SpecularThicknesshRandomIntensity;
StylingRandomData stylingRandomDataCastShadows;
stylingRandomDataCastShadows.enableRandomizer = _EnableCastShadowsRandomizer;
stylingRandomDataCastShadows.perlinNoiseSize = _CastShadowsNoise1Size;
stylingRandomDataCastShadows.perlinNoiseSeed = _CastShadowsNoise1Seed;
stylingRandomDataCastShadows.whiteNoiseSeed = _CastShadowsNoise2Seed;
stylingRandomDataCastShadows.noiseIntensity = _CastShadowsNoiseIntensity;
stylingRandomDataCastShadows.spacingRandomMode = _CastShadowsSpacingRandomMode;
stylingRandomDataCastShadows.spacingRandomIntensity = _CastShadowsSpacingRandomIntensity;
stylingRandomDataCastShadows.opacityRandomMode = _CastShadowsOpacityRandomMode;
stylingRandomDataCastShadows.opacityRandomIntensity = _CastShadowsOpacityRandomIntensity;
stylingRandomDataCastShadows.lengthRandomMode = _CastShadowsLengthRandomMode;
stylingRandomDataCastShadows.lengthRandomIntensity = _CastShadowsLengthRandomIntensity;
stylingRandomDataCastShadows.hardnessRandomMode = _CastShadowsHardnessRandomMode;
stylingRandomDataCastShadows.hardnessRandomIntensity = _CastShadowsHardnessRandomIntensity;
stylingRandomDataCastShadows.thicknessRandomMode = _CastShadowsThicknessRandomMode;
stylingRandomDataCastShadows.thicknesshRandomIntensity = _CastShadowsThicknesshRandomIntensity;
StylingRandomData stylingRandomDataRim;
stylingRandomDataRim.enableRandomizer = _EnableRimRandomizer;
stylingRandomDataRim.perlinNoiseSize = _RimNoise1Size;
stylingRandomDataRim.perlinNoiseSeed = _RimNoise1Seed;
stylingRandomDataRim.whiteNoiseSeed = _RimNoise2Seed;
stylingRandomDataRim.noiseIntensity = _RimNoiseIntensity;
stylingRandomDataRim.spacingRandomMode = _RimSpacingRandomMode;
stylingRandomDataRim.spacingRandomIntensity = _RimSpacingRandomIntensity;
stylingRandomDataRim.opacityRandomMode = _RimOpacityRandomMode;
stylingRandomDataRim.opacityRandomIntensity = _RimOpacityRandomIntensity;
stylingRandomDataRim.lengthRandomMode = _RimLengthRandomMode;
stylingRandomDataRim.lengthRandomIntensity = _RimLengthRandomIntensity;
stylingRandomDataRim.hardnessRandomMode = _RimHardnessRandomMode;
stylingRandomDataRim.hardnessRandomIntensity = _RimHardnessRandomIntensity;
stylingRandomDataRim.thicknessRandomMode = _RimThicknessRandomMode;
stylingRandomDataRim.thicknesshRandomIntensity = _RimThicknesshRandomIntensity;
DoToonShading(
#if _URP
inputData,
surface,
#else
o,
gi,
#if !_PASSFORWARDADD
giInput,
#endif
#endif
d,
#if _URP
#if UNITY_VERSION >= 202120
normalTS,
#endif
#endif
albedo, _NumberOfCells, _CellTransitionSmoothness, _SumLightsBeforePosterization, _ShadingUseLightColors,
uv, screenUV, _HatchingMap,
_ShadingMode, _LightFunction,
_EnableToonShading, _ShadingFunction,
_GradientTex, _GradientTex_TexelSize, _GradientMode, _GradientBlending, _GradientBlendFactor,
_EnableShadows, _CoreShadowColor,
_TerminatorPosition,
_TerminatorWidth, _TerminatorSmoothness, _FormShadowColor,
_EnableCastShadows, _CastShadowsStrength, _CastShadowsSmoothness, _CastShadowColorMode, _CastShadowColor,
_ShadingAffectedByNormalMap,
_EnableSpecular, _SpecularBlending, _SpecularColor, _SpecularSize, _SpecularSmoothness, _SpecularOpacity, _SpecularAffectedByNormalMap, _SpecularUseLightColors,
_EnableRim, _RimBlending, _RimColor, _RimSize, _RimSmoothness, _RimOpacity, _RimAffectedArea, _RimAffectedByNormalMap,
_EnableStyling,
uvSets,
generalStylingData, _HatchingAffectedByNormalMap, _EnableAntiAliasing,
_EnableShadingStyling,
_StylingShadingSyncWithOtherStyling,
_SyncWithLightPartitioning, _NumberOfCellsHatching,
_StylingTerminatorPosition,
_StylingOvermodelingFactor,
positionAndBlendingDataShading, uvSpaceDataShading, stylingDataShading, stylingRandomDataShading,
_EnableCastShadowsStyling,
_StylingCastShadowsSyncWithOtherStyling,
_CastShadowsNumberOfCellsHatching, _StylingCastShadowsSmoothness,
positionAndBlendingDataCastShadows, uvSpaceDataCastShadows, stylingDataCastShadows, stylingRandomDataCastShadows,
_EnableSpecularStyling,
_SyncWithSpecular, _StylingSpecularSize, _StylingSpecularSmoothness, _StylingSpecularCutOutShading, _StylingSpecularUseLightColors,
_StylingSpecularSyncWithOtherStyling,
positionAndBlendingDataSpecular, uvSpaceDataSpecular, stylingDataSpecular, stylingRandomDataSpecular,
_EnableRimStyling,
_SyncWithRim, _StylingRimSize, _StylingRimSmoothness, _StylingRimAffectedArea,
_StylingRimSyncWithOtherStyling,
positionAndBlendingDataRim, uvSpaceDataRim, stylingDataRim, stylingRandomDataRim,
_NoiseMap1, _NoiseMap2, _NoiseTex2_TexelSize,
pureNormal);
}
#endif