Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Shader error on WebGL compilation

Discussion in 'Editor & General Support' started by LudovicAL, Jan 27, 2022.

  1. LudovicAL

    LudovicAL

    Joined:
    Feb 5, 2017
    Posts:
    1
    Hi,

    I get errors when producing a WebGL build of my project and it appears to be linked to some shaders I made with Shader Graph.

    Here are the errors I get in the console when I build, and also in the inspector when I examine the shaders after a build attempt:
    • 'SAMPLE_DEPTH_TEXTURE': Too few arguments to a macro call.
    • undeclared identifier 'SAMPLE_DEPTH_TEXTURE_PROJ'
    • invalid subscript 'vec'
    All three errors appears on all of my shaders.
    My shaders were created by clicking create->Shader Graph->Built in->Lit Shader Graph.
    I have tried reinstalling Unity and Visual Studio to solve this issue.
    I am using version 2021.2.8.f1 of Unity.
    I am using version 12.1.3 of Shader Graph.
    For my WebGL build I use all default build parameters, but for these 4 parameters:
    • Color Space = Gamma
    • Lightmap Encoding = Normal Quality
    • Active Input Handling = Input System Package (New)
    • Compression format = Disabled
    Lastly, find bellow the code for one of my shaders that has the errors.

    Has anyone met such errors and found a way to get rid of them?




    Code (CSharp):
    1. Shader "LitRotationShader"
    2. {
    3.     Properties
    4.     {
    5.         _referencePosition("referencePosition", Vector) = (0, 0, 0, 0)
    6.         [Toggle(_ENABLED)]_ENABLED("enabled", Float) = 0
    7.         _curvature("curvature", Float) = 0
    8.         [Toggle(_AXIS)]_AXIS("axis", Float) = 0
    9.         [NoScaleOffset]_BaseMap("BaseMap", 2D) = "white" {}
    10.         _BaseColor("BaseColor", Color) = (0, 0, 0, 0)
    11.         _Smoothness("Smoothness", Float) = 0
    12.         [HideInInspector]_BUILTIN_QueueOffset("Float", Float) = 0
    13.         [HideInInspector]_BUILTIN_QueueControl("Float", Float) = -1
    14.     }
    15.     SubShader
    16.     {
    17.         Tags
    18.         {
    19.             // RenderPipeline: <None>
    20.             "RenderType"="Opaque"
    21.             "BuiltInMaterialType" = "Lit"
    22.             "Queue"="Geometry"
    23.             "ShaderGraphShader"="true"
    24.             "ShaderGraphTargetId"="BuiltInLitSubTarget"
    25.         }
    26.         Pass
    27.         {
    28.             Name "BuiltIn Forward"
    29.             Tags
    30.             {
    31.                 "LightMode" = "ForwardBase"
    32.             }
    33.        
    34.         // Render State
    35.         Cull Back
    36.         Blend One Zero
    37.         ZTest LEqual
    38.         ZWrite On
    39.        
    40.         // Debug
    41.         // <None>
    42.        
    43.         // --------------------------------------------------
    44.         // Pass
    45.        
    46.         HLSLPROGRAM
    47.        
    48.         // Pragmas
    49.         #pragma target 3.0
    50.         #pragma multi_compile_instancing
    51.         #pragma multi_compile_fog
    52.         #pragma multi_compile_fwdbase
    53.         #pragma vertex vert
    54.         #pragma fragment frag
    55.        
    56.         // DotsInstancingOptions: <None>
    57.         // HybridV1InjectedBuiltinProperties: <None>
    58.        
    59.         // Keywords
    60.         #pragma multi_compile _ _SCREEN_SPACE_OCCLUSION
    61.         #pragma multi_compile _ LIGHTMAP_ON
    62.         #pragma multi_compile _ DIRLIGHTMAP_COMBINED
    63.         #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
    64.         #pragma multi_compile _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS _ADDITIONAL_OFF
    65.         #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
    66.         #pragma multi_compile _ _SHADOWS_SOFT
    67.         #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
    68.         #pragma multi_compile _ SHADOWS_SHADOWMASK
    69.         #pragma multi_compile _ _ENABLED
    70.         #pragma multi_compile_local _ _AXIS
    71.        
    72.         #if defined(_ENABLED) && defined(_AXIS)
    73.             #define KEYWORD_PERMUTATION_0
    74.         #elif defined(_ENABLED)
    75.             #define KEYWORD_PERMUTATION_1
    76.         #elif defined(_AXIS)
    77.             #define KEYWORD_PERMUTATION_2
    78.         #else
    79.             #define KEYWORD_PERMUTATION_3
    80.         #endif
    81.        
    82.        
    83.         // Defines
    84.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    85.         #define _NORMALMAP 1
    86.         #endif
    87.        
    88.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    89.         #define _NORMAL_DROPOFF_TS 1
    90.         #endif
    91.        
    92.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    93.         #define ATTRIBUTES_NEED_NORMAL
    94.         #endif
    95.        
    96.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    97.         #define ATTRIBUTES_NEED_TANGENT
    98.         #endif
    99.        
    100.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    101.         #define ATTRIBUTES_NEED_TEXCOORD0
    102.         #endif
    103.        
    104.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    105.         #define ATTRIBUTES_NEED_TEXCOORD1
    106.         #endif
    107.        
    108.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    109.         #define VARYINGS_NEED_POSITION_WS
    110.         #endif
    111.        
    112.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    113.         #define VARYINGS_NEED_NORMAL_WS
    114.         #endif
    115.        
    116.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    117.         #define VARYINGS_NEED_TANGENT_WS
    118.         #endif
    119.        
    120.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    121.         #define VARYINGS_NEED_TEXCOORD0
    122.         #endif
    123.        
    124.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    125.         #define VARYINGS_NEED_VIEWDIRECTION_WS
    126.         #endif
    127.        
    128.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    129.         #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    130.         #endif
    131.        
    132.         #define FEATURES_GRAPH_VERTEX
    133.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    134.         #define SHADERPASS SHADERPASS_FORWARD
    135.         #define BUILTIN_TARGET_API 1
    136.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    137.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    138.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    139.         #endif
    140.         #ifdef _BUILTIN_ALPHATEST_ON
    141.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    142.         #endif
    143.         #ifdef _BUILTIN_AlphaClip
    144.         #define _AlphaClip _BUILTIN_AlphaClip
    145.         #endif
    146.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    147.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    148.         #endif
    149.        
    150.        
    151.         // custom interpolator pre-include
    152.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    153.        
    154.         // Includes
    155.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    156.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    157.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    158.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    159.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    160.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    161.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    162.        
    163.         // --------------------------------------------------
    164.         // Structs and Packing
    165.        
    166.         // custom interpolators pre packing
    167.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    168.        
    169.         struct Attributes
    170.         {
    171.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    172.              float3 positionOS : POSITION;
    173.             #endif
    174.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    175.              float3 normalOS : NORMAL;
    176.             #endif
    177.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    178.              float4 tangentOS : TANGENT;
    179.             #endif
    180.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    181.              float4 uv0 : TEXCOORD0;
    182.             #endif
    183.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    184.              float4 uv1 : TEXCOORD1;
    185.             #endif
    186.             #if UNITY_ANY_INSTANCING_ENABLED
    187.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    188.              uint instanceID : INSTANCEID_SEMANTIC;
    189.             #endif
    190.             #endif
    191.         };
    192.         struct Varyings
    193.         {
    194.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    195.              float4 positionCS : SV_POSITION;
    196.             #endif
    197.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    198.              float3 positionWS;
    199.             #endif
    200.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    201.              float3 normalWS;
    202.             #endif
    203.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    204.              float4 tangentWS;
    205.             #endif
    206.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    207.              float4 texCoord0;
    208.             #endif
    209.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    210.              float3 viewDirectionWS;
    211.             #endif
    212.             #if defined(LIGHTMAP_ON)
    213.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    214.              float2 lightmapUV;
    215.             #endif
    216.             #endif
    217.             #if !defined(LIGHTMAP_ON)
    218.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    219.              float3 sh;
    220.             #endif
    221.             #endif
    222.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    223.              float4 fogFactorAndVertexLight;
    224.             #endif
    225.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    226.              float4 shadowCoord;
    227.             #endif
    228.             #if UNITY_ANY_INSTANCING_ENABLED
    229.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    230.              uint instanceID : CUSTOM_INSTANCE_ID;
    231.             #endif
    232.             #endif
    233.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    234.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    235.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    236.             #endif
    237.             #endif
    238.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    239.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    240.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    241.             #endif
    242.             #endif
    243.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    244.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    245.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    246.             #endif
    247.             #endif
    248.         };
    249.         struct SurfaceDescriptionInputs
    250.         {
    251.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    252.              float3 TangentSpaceNormal;
    253.             #endif
    254.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    255.              float4 uv0;
    256.             #endif
    257.         };
    258.         struct VertexDescriptionInputs
    259.         {
    260.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    261.              float3 ObjectSpaceNormal;
    262.             #endif
    263.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    264.              float3 WorldSpaceNormal;
    265.             #endif
    266.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    267.              float3 ObjectSpaceTangent;
    268.             #endif
    269.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    270.              float3 WorldSpaceTangent;
    271.             #endif
    272.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    273.              float3 ObjectSpaceBiTangent;
    274.             #endif
    275.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    276.              float3 WorldSpaceBiTangent;
    277.             #endif
    278.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    279.              float3 ObjectSpacePosition;
    280.             #endif
    281.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    282.              float3 WorldSpacePosition;
    283.             #endif
    284.         };
    285.         struct PackedVaryings
    286.         {
    287.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    288.              float4 positionCS : SV_POSITION;
    289.             #endif
    290.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    291.              float3 interp0 : INTERP0;
    292.             #endif
    293.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    294.              float3 interp1 : INTERP1;
    295.             #endif
    296.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    297.              float4 interp2 : INTERP2;
    298.             #endif
    299.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    300.              float4 interp3 : INTERP3;
    301.             #endif
    302.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    303.              float3 interp4 : INTERP4;
    304.             #endif
    305.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    306.              float2 interp5 : INTERP5;
    307.             #endif
    308.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    309.              float3 interp6 : INTERP6;
    310.             #endif
    311.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    312.              float4 interp7 : INTERP7;
    313.             #endif
    314.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    315.              float4 interp8 : INTERP8;
    316.             #endif
    317.             #if UNITY_ANY_INSTANCING_ENABLED
    318.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    319.              uint instanceID : CUSTOM_INSTANCE_ID;
    320.             #endif
    321.             #endif
    322.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    323.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    324.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    325.             #endif
    326.             #endif
    327.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    328.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    329.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    330.             #endif
    331.             #endif
    332.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    333.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    334.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    335.             #endif
    336.             #endif
    337.         };
    338.        
    339.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    340.         PackedVaryings PackVaryings (Varyings input)
    341.         {
    342.             PackedVaryings output;
    343.             ZERO_INITIALIZE(PackedVaryings, output);
    344.             output.positionCS = input.positionCS;
    345.             output.interp0.xyz =  input.positionWS;
    346.             output.interp1.xyz =  input.normalWS;
    347.             output.interp2.xyzw =  input.tangentWS;
    348.             output.interp3.xyzw =  input.texCoord0;
    349.             output.interp4.xyz =  input.viewDirectionWS;
    350.             #if defined(LIGHTMAP_ON)
    351.             output.interp5.xy =  input.lightmapUV;
    352.             #endif
    353.             #if !defined(LIGHTMAP_ON)
    354.             output.interp6.xyz =  input.sh;
    355.             #endif
    356.             output.interp7.xyzw =  input.fogFactorAndVertexLight;
    357.             output.interp8.xyzw =  input.shadowCoord;
    358.             #if UNITY_ANY_INSTANCING_ENABLED
    359.             output.instanceID = input.instanceID;
    360.             #endif
    361.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    362.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    363.             #endif
    364.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    365.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    366.             #endif
    367.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    368.             output.cullFace = input.cullFace;
    369.             #endif
    370.             return output;
    371.         }
    372.        
    373.         Varyings UnpackVaryings (PackedVaryings input)
    374.         {
    375.             Varyings output;
    376.             output.positionCS = input.positionCS;
    377.             output.positionWS = input.interp0.xyz;
    378.             output.normalWS = input.interp1.xyz;
    379.             output.tangentWS = input.interp2.xyzw;
    380.             output.texCoord0 = input.interp3.xyzw;
    381.             output.viewDirectionWS = input.interp4.xyz;
    382.             #if defined(LIGHTMAP_ON)
    383.             output.lightmapUV = input.interp5.xy;
    384.             #endif
    385.             #if !defined(LIGHTMAP_ON)
    386.             output.sh = input.interp6.xyz;
    387.             #endif
    388.             output.fogFactorAndVertexLight = input.interp7.xyzw;
    389.             output.shadowCoord = input.interp8.xyzw;
    390.             #if UNITY_ANY_INSTANCING_ENABLED
    391.             output.instanceID = input.instanceID;
    392.             #endif
    393.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    394.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    395.             #endif
    396.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    397.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    398.             #endif
    399.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    400.             output.cullFace = input.cullFace;
    401.             #endif
    402.             return output;
    403.         }
    404.         #endif
    405.        
    406.         // --------------------------------------------------
    407.         // Graph
    408.        
    409.         // Graph Properties
    410.         CBUFFER_START(UnityPerMaterial)
    411.         float3 _referencePosition;
    412.         float _curvature;
    413.         float4 _BaseMap_TexelSize;
    414.         float4 _BaseColor;
    415.         float _Smoothness;
    416.         CBUFFER_END
    417.        
    418.         // Object and Global properties
    419.         SAMPLER(SamplerState_Linear_Repeat);
    420.         TEXTURE2D(_BaseMap);
    421.         SAMPLER(sampler_BaseMap);
    422.        
    423.         // -- Property used by ScenePickingPass
    424.         #ifdef SCENEPICKINGPASS
    425.         float4 _SelectionID;
    426.         #endif
    427.        
    428.         // -- Properties used by SceneSelectionPass
    429.         #ifdef SCENESELECTIONPASS
    430.         int _ObjectId;
    431.         int _PassValue;
    432.         #endif
    433.        
    434.         // Graph Includes
    435.         // GraphIncludes: <None>
    436.        
    437.         // Graph Functions
    438.        
    439.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    440.         {
    441.             Out = A - B;
    442.         }
    443.        
    444.         void Unity_Multiply_float_float(float A, float B, out float Out)
    445.         {
    446.             Out = A * B;
    447.         }
    448.        
    449.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    450.         {
    451.             Rotation = radians(Rotation);
    452.        
    453.             float s = sin(Rotation);
    454.             float c = cos(Rotation);
    455.             float one_minus_c = 1.0 - c;
    456.        
    457.             Axis = normalize(Axis);
    458.        
    459.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    460.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    461.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    462.                                     };
    463.        
    464.             Out = mul(rot_mat,  In);
    465.         }
    466.        
    467.         void Unity_Blend_Overlay_float4(float4 Base, float4 Blend, out float4 Out, float Opacity)
    468.         {
    469.             float4 result1 = 1.0 - 2.0 * (1.0 - Base) * (1.0 - Blend);
    470.             float4 result2 = 2.0 * Base * Blend;
    471.             float4 zeroOrOne = step(Base, 0.5);
    472.             Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
    473.             Out = lerp(Base, Out, Opacity);
    474.         }
    475.        
    476.         // Custom interpolators pre vertex
    477.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    478.        
    479.         // Graph Vertex
    480.         struct VertexDescription
    481.         {
    482.             float3 Position;
    483.             float3 Normal;
    484.             float3 Tangent;
    485.         };
    486.        
    487.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    488.         {
    489.             VertexDescription description = (VertexDescription)0;
    490.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    491.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    492.             #endif
    493.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    494.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    495.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    496.             #endif
    497.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    498.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    499.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    500.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    501.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    502.             #endif
    503.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    504.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    505.             #endif
    506.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    507.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    508.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    509.             #endif
    510.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    511.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    512.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    513.             #endif
    514.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    515.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    516.             #endif
    517.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    518.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    519.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    520.             #endif
    521.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    522.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    523.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    524.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    525.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    526.             #endif
    527.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    528.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    529.             #endif
    530.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    531.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    532.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    533.             #endif
    534.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    535.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    536.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    537.             #endif
    538.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    539.             #if defined(_AXIS)
    540.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    541.             #else
    542.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    543.             #endif
    544.             #endif
    545.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    546.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    547.             #endif
    548.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    549.             #if defined(_ENABLED)
    550.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    551.             #else
    552.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    553.             #endif
    554.             #endif
    555.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    556.             description.Normal = IN.ObjectSpaceNormal;
    557.             description.Tangent = IN.ObjectSpaceTangent;
    558.             return description;
    559.         }
    560.        
    561.         // Custom interpolators, pre surface
    562.         #ifdef FEATURES_GRAPH_VERTEX
    563.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    564.         {
    565.         return output;
    566.         }
    567.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    568.         #endif
    569.        
    570.         // Graph Pixel
    571.         struct SurfaceDescription
    572.         {
    573.             float3 BaseColor;
    574.             float3 NormalTS;
    575.             float3 Emission;
    576.             float Metallic;
    577.             float Smoothness;
    578.             float Occlusion;
    579.         };
    580.        
    581.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    582.         {
    583.             SurfaceDescription surface = (SurfaceDescription)0;
    584.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    585.             UnityTexture2D _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0 = UnityBuildTexture2DStructNoScale(_BaseMap);
    586.             #endif
    587.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    588.             float4 _UV_1038f1c745e44aa882dd6d672f52eb92_Out_0 = IN.uv0;
    589.             #endif
    590.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    591.             float4 _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.tex, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.samplerstate, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.GetTransformedUV((_UV_1038f1c745e44aa882dd6d672f52eb92_Out_0.xy)));
    592.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_R_4 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.r;
    593.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_G_5 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.g;
    594.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_B_6 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.b;
    595.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_A_7 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.a;
    596.             #endif
    597.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    598.             float4 _Property_53b1730c224f4a0b869af017723d52c3_Out_0 = _BaseColor;
    599.             #endif
    600.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    601.             float4 _Blend_f8d31fdc58974777a0eec571ab662204_Out_2;
    602.             Unity_Blend_Overlay_float4(_SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0, _Property_53b1730c224f4a0b869af017723d52c3_Out_0, _Blend_f8d31fdc58974777a0eec571ab662204_Out_2, 1);
    603.             #endif
    604.             surface.BaseColor = (_Blend_f8d31fdc58974777a0eec571ab662204_Out_2.xyz);
    605.             surface.NormalTS = IN.TangentSpaceNormal;
    606.             surface.Emission = float3(0, 0, 0);
    607.             surface.Metallic = 0;
    608.             surface.Smoothness = 0.5;
    609.             surface.Occlusion = 1;
    610.             return surface;
    611.         }
    612.        
    613.         // --------------------------------------------------
    614.         // Build Graph Inputs
    615.        
    616.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    617.         {
    618.             VertexDescriptionInputs output;
    619.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    620.        
    621.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    622.         output.ObjectSpaceNormal =                          input.normalOS;
    623.         #endif
    624.        
    625.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    626.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    627.         #endif
    628.        
    629.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    630.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    631.         #endif
    632.        
    633.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    634.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    635.         #endif
    636.        
    637.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    638.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    639.         #endif
    640.        
    641.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    642.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    643.         #endif
    644.        
    645.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    646.         output.ObjectSpacePosition =                        input.positionOS;
    647.         #endif
    648.        
    649.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    650.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    651.         #endif
    652.        
    653.        
    654.             return output;
    655.         }
    656.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    657.         {
    658.             SurfaceDescriptionInputs output;
    659.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    660.        
    661.            
    662.        
    663.        
    664.        
    665.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    666.         output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f);
    667.         #endif
    668.        
    669.        
    670.        
    671.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    672.         output.uv0 = input.texCoord0;
    673.         #endif
    674.        
    675.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    676.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    677.         #else
    678.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    679.         #endif
    680.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    681.        
    682.                 return output;
    683.         }
    684.        
    685.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    686.         {
    687.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    688.         result.vertex     = float4(attributes.positionOS, 1);
    689.         #endif
    690.        
    691.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    692.         result.tangent    = attributes.tangentOS;
    693.         #endif
    694.        
    695.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    696.         result.normal     = attributes.normalOS;
    697.         #endif
    698.        
    699.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    700.         result.texcoord   = attributes.uv0;
    701.         #endif
    702.        
    703.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    704.         result.texcoord1  = attributes.uv1;
    705.         #endif
    706.        
    707.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    708.         result.vertex     = float4(vertexDescription.Position, 1);
    709.         #endif
    710.        
    711.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    712.         result.normal     = vertexDescription.Normal;
    713.         #endif
    714.        
    715.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    716.         result.tangent    = float4(vertexDescription.Tangent, 0);
    717.         #endif
    718.        
    719.             #if UNITY_ANY_INSTANCING_ENABLED
    720.             #endif
    721.         }
    722.        
    723.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    724.         {
    725.             result.pos = varyings.positionCS;
    726.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    727.         result.worldPos = varyings.positionWS;
    728.         #endif
    729.        
    730.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    731.         result.worldNormal = varyings.normalWS;
    732.         #endif
    733.        
    734.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    735.         result.viewDir = varyings.viewDirectionWS;
    736.         #endif
    737.        
    738.             // World Tangent isn't an available input on v2f_surf
    739.        
    740.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    741.         result._ShadowCoord = varyings.shadowCoord;
    742.         #endif
    743.        
    744.        
    745.             #if UNITY_ANY_INSTANCING_ENABLED
    746.             #endif
    747.             #if UNITY_SHOULD_SAMPLE_SH
    748.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    749.         result.sh = varyings.sh;
    750.         #endif
    751.        
    752.             #endif
    753.             #if defined(LIGHTMAP_ON)
    754.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    755.         result.lmap.xy = varyings.lightmapUV;
    756.         #endif
    757.        
    758.             #endif
    759.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    760.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    761.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    762.             #endif
    763.        
    764.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    765.         }
    766.        
    767.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    768.         {
    769.             result.positionCS = surfVertex.pos;
    770.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    771.         result.positionWS = surfVertex.worldPos;
    772.         #endif
    773.        
    774.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    775.         result.normalWS = surfVertex.worldNormal;
    776.         #endif
    777.        
    778.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    779.             // World Tangent isn't an available input on v2f_surf
    780.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    781.         result.shadowCoord = surfVertex._ShadowCoord;
    782.         #endif
    783.        
    784.        
    785.             #if UNITY_ANY_INSTANCING_ENABLED
    786.             #endif
    787.             #if UNITY_SHOULD_SAMPLE_SH
    788.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    789.         result.sh = surfVertex.sh;
    790.         #endif
    791.        
    792.             #endif
    793.             #if defined(LIGHTMAP_ON)
    794.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    795.         result.lightmapUV = surfVertex.lmap.xy;
    796.         #endif
    797.        
    798.             #endif
    799.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    800.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    801.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    802.             #endif
    803.        
    804.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    805.         }
    806.        
    807.         // --------------------------------------------------
    808.         // Main
    809.        
    810.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    811.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    812.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl"
    813.        
    814.         ENDHLSL
    815.         }
    816.         Pass
    817.         {
    818.             Name "BuiltIn ForwardAdd"
    819.             Tags
    820.             {
    821.                 "LightMode" = "ForwardAdd"
    822.             }
    823.        
    824.         // Render State
    825.         Blend SrcAlpha One, One One
    826.         ZWrite Off
    827.        
    828.         // Debug
    829.         // <None>
    830.        
    831.         // --------------------------------------------------
    832.         // Pass
    833.        
    834.         HLSLPROGRAM
    835.        
    836.         // Pragmas
    837.         #pragma target 3.0
    838.         #pragma multi_compile_instancing
    839.         #pragma multi_compile_fog
    840.         #pragma multi_compile_fwdadd_fullshadows
    841.         #pragma vertex vert
    842.         #pragma fragment frag
    843.        
    844.         // DotsInstancingOptions: <None>
    845.         // HybridV1InjectedBuiltinProperties: <None>
    846.        
    847.         // Keywords
    848.         #pragma multi_compile _ _SCREEN_SPACE_OCCLUSION
    849.         #pragma multi_compile _ LIGHTMAP_ON
    850.         #pragma multi_compile _ DIRLIGHTMAP_COMBINED
    851.         #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
    852.         #pragma multi_compile _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS _ADDITIONAL_OFF
    853.         #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
    854.         #pragma multi_compile _ _SHADOWS_SOFT
    855.         #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
    856.         #pragma multi_compile _ SHADOWS_SHADOWMASK
    857.         #pragma multi_compile _ _ENABLED
    858.         #pragma multi_compile_local _ _AXIS
    859.        
    860.         #if defined(_ENABLED) && defined(_AXIS)
    861.             #define KEYWORD_PERMUTATION_0
    862.         #elif defined(_ENABLED)
    863.             #define KEYWORD_PERMUTATION_1
    864.         #elif defined(_AXIS)
    865.             #define KEYWORD_PERMUTATION_2
    866.         #else
    867.             #define KEYWORD_PERMUTATION_3
    868.         #endif
    869.        
    870.        
    871.         // Defines
    872.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    873.         #define _NORMALMAP 1
    874.         #endif
    875.        
    876.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    877.         #define _NORMAL_DROPOFF_TS 1
    878.         #endif
    879.        
    880.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    881.         #define ATTRIBUTES_NEED_NORMAL
    882.         #endif
    883.        
    884.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    885.         #define ATTRIBUTES_NEED_TANGENT
    886.         #endif
    887.        
    888.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    889.         #define ATTRIBUTES_NEED_TEXCOORD0
    890.         #endif
    891.        
    892.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    893.         #define ATTRIBUTES_NEED_TEXCOORD1
    894.         #endif
    895.        
    896.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    897.         #define VARYINGS_NEED_POSITION_WS
    898.         #endif
    899.        
    900.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    901.         #define VARYINGS_NEED_NORMAL_WS
    902.         #endif
    903.        
    904.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    905.         #define VARYINGS_NEED_TANGENT_WS
    906.         #endif
    907.        
    908.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    909.         #define VARYINGS_NEED_TEXCOORD0
    910.         #endif
    911.        
    912.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    913.         #define VARYINGS_NEED_VIEWDIRECTION_WS
    914.         #endif
    915.        
    916.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    917.         #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    918.         #endif
    919.        
    920.         #define FEATURES_GRAPH_VERTEX
    921.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    922.         #define SHADERPASS SHADERPASS_FORWARD_ADD
    923.         #define BUILTIN_TARGET_API 1
    924.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    925.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    926.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    927.         #endif
    928.         #ifdef _BUILTIN_ALPHATEST_ON
    929.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    930.         #endif
    931.         #ifdef _BUILTIN_AlphaClip
    932.         #define _AlphaClip _BUILTIN_AlphaClip
    933.         #endif
    934.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    935.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    936.         #endif
    937.        
    938.        
    939.         // custom interpolator pre-include
    940.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    941.        
    942.         // Includes
    943.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    944.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    945.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    946.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    947.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    948.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    949.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    950.        
    951.         // --------------------------------------------------
    952.         // Structs and Packing
    953.        
    954.         // custom interpolators pre packing
    955.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    956.        
    957.         struct Attributes
    958.         {
    959.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    960.              float3 positionOS : POSITION;
    961.             #endif
    962.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    963.              float3 normalOS : NORMAL;
    964.             #endif
    965.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    966.              float4 tangentOS : TANGENT;
    967.             #endif
    968.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    969.              float4 uv0 : TEXCOORD0;
    970.             #endif
    971.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    972.              float4 uv1 : TEXCOORD1;
    973.             #endif
    974.             #if UNITY_ANY_INSTANCING_ENABLED
    975.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    976.              uint instanceID : INSTANCEID_SEMANTIC;
    977.             #endif
    978.             #endif
    979.         };
    980.         struct Varyings
    981.         {
    982.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    983.              float4 positionCS : SV_POSITION;
    984.             #endif
    985.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    986.              float3 positionWS;
    987.             #endif
    988.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    989.              float3 normalWS;
    990.             #endif
    991.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    992.              float4 tangentWS;
    993.             #endif
    994.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    995.              float4 texCoord0;
    996.             #endif
    997.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    998.              float3 viewDirectionWS;
    999.             #endif
    1000.             #if defined(LIGHTMAP_ON)
    1001.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1002.              float2 lightmapUV;
    1003.             #endif
    1004.             #endif
    1005.             #if !defined(LIGHTMAP_ON)
    1006.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1007.              float3 sh;
    1008.             #endif
    1009.             #endif
    1010.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1011.              float4 fogFactorAndVertexLight;
    1012.             #endif
    1013.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1014.              float4 shadowCoord;
    1015.             #endif
    1016.             #if UNITY_ANY_INSTANCING_ENABLED
    1017.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1018.              uint instanceID : CUSTOM_INSTANCE_ID;
    1019.             #endif
    1020.             #endif
    1021.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1022.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1023.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    1024.             #endif
    1025.             #endif
    1026.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1027.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1028.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    1029.             #endif
    1030.             #endif
    1031.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1032.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1033.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    1034.             #endif
    1035.             #endif
    1036.         };
    1037.         struct SurfaceDescriptionInputs
    1038.         {
    1039.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1040.              float3 TangentSpaceNormal;
    1041.             #endif
    1042.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1043.              float4 uv0;
    1044.             #endif
    1045.         };
    1046.         struct VertexDescriptionInputs
    1047.         {
    1048.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1049.              float3 ObjectSpaceNormal;
    1050.             #endif
    1051.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1052.              float3 WorldSpaceNormal;
    1053.             #endif
    1054.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1055.              float3 ObjectSpaceTangent;
    1056.             #endif
    1057.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1058.              float3 WorldSpaceTangent;
    1059.             #endif
    1060.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1061.              float3 ObjectSpaceBiTangent;
    1062.             #endif
    1063.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1064.              float3 WorldSpaceBiTangent;
    1065.             #endif
    1066.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1067.              float3 ObjectSpacePosition;
    1068.             #endif
    1069.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1070.              float3 WorldSpacePosition;
    1071.             #endif
    1072.         };
    1073.         struct PackedVaryings
    1074.         {
    1075.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1076.              float4 positionCS : SV_POSITION;
    1077.             #endif
    1078.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1079.              float3 interp0 : INTERP0;
    1080.             #endif
    1081.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1082.              float3 interp1 : INTERP1;
    1083.             #endif
    1084.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1085.              float4 interp2 : INTERP2;
    1086.             #endif
    1087.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1088.              float4 interp3 : INTERP3;
    1089.             #endif
    1090.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1091.              float3 interp4 : INTERP4;
    1092.             #endif
    1093.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1094.              float2 interp5 : INTERP5;
    1095.             #endif
    1096.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1097.              float3 interp6 : INTERP6;
    1098.             #endif
    1099.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1100.              float4 interp7 : INTERP7;
    1101.             #endif
    1102.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1103.              float4 interp8 : INTERP8;
    1104.             #endif
    1105.             #if UNITY_ANY_INSTANCING_ENABLED
    1106.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1107.              uint instanceID : CUSTOM_INSTANCE_ID;
    1108.             #endif
    1109.             #endif
    1110.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1111.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1112.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    1113.             #endif
    1114.             #endif
    1115.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1116.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1117.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    1118.             #endif
    1119.             #endif
    1120.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1121.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1122.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    1123.             #endif
    1124.             #endif
    1125.         };
    1126.        
    1127.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1128.         PackedVaryings PackVaryings (Varyings input)
    1129.         {
    1130.             PackedVaryings output;
    1131.             ZERO_INITIALIZE(PackedVaryings, output);
    1132.             output.positionCS = input.positionCS;
    1133.             output.interp0.xyz =  input.positionWS;
    1134.             output.interp1.xyz =  input.normalWS;
    1135.             output.interp2.xyzw =  input.tangentWS;
    1136.             output.interp3.xyzw =  input.texCoord0;
    1137.             output.interp4.xyz =  input.viewDirectionWS;
    1138.             #if defined(LIGHTMAP_ON)
    1139.             output.interp5.xy =  input.lightmapUV;
    1140.             #endif
    1141.             #if !defined(LIGHTMAP_ON)
    1142.             output.interp6.xyz =  input.sh;
    1143.             #endif
    1144.             output.interp7.xyzw =  input.fogFactorAndVertexLight;
    1145.             output.interp8.xyzw =  input.shadowCoord;
    1146.             #if UNITY_ANY_INSTANCING_ENABLED
    1147.             output.instanceID = input.instanceID;
    1148.             #endif
    1149.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1150.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    1151.             #endif
    1152.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1153.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    1154.             #endif
    1155.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1156.             output.cullFace = input.cullFace;
    1157.             #endif
    1158.             return output;
    1159.         }
    1160.        
    1161.         Varyings UnpackVaryings (PackedVaryings input)
    1162.         {
    1163.             Varyings output;
    1164.             output.positionCS = input.positionCS;
    1165.             output.positionWS = input.interp0.xyz;
    1166.             output.normalWS = input.interp1.xyz;
    1167.             output.tangentWS = input.interp2.xyzw;
    1168.             output.texCoord0 = input.interp3.xyzw;
    1169.             output.viewDirectionWS = input.interp4.xyz;
    1170.             #if defined(LIGHTMAP_ON)
    1171.             output.lightmapUV = input.interp5.xy;
    1172.             #endif
    1173.             #if !defined(LIGHTMAP_ON)
    1174.             output.sh = input.interp6.xyz;
    1175.             #endif
    1176.             output.fogFactorAndVertexLight = input.interp7.xyzw;
    1177.             output.shadowCoord = input.interp8.xyzw;
    1178.             #if UNITY_ANY_INSTANCING_ENABLED
    1179.             output.instanceID = input.instanceID;
    1180.             #endif
    1181.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1182.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    1183.             #endif
    1184.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1185.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    1186.             #endif
    1187.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1188.             output.cullFace = input.cullFace;
    1189.             #endif
    1190.             return output;
    1191.         }
    1192.         #endif
    1193.        
    1194.         // --------------------------------------------------
    1195.         // Graph
    1196.        
    1197.         // Graph Properties
    1198.         CBUFFER_START(UnityPerMaterial)
    1199.         float3 _referencePosition;
    1200.         float _curvature;
    1201.         float4 _BaseMap_TexelSize;
    1202.         float4 _BaseColor;
    1203.         float _Smoothness;
    1204.         CBUFFER_END
    1205.        
    1206.         // Object and Global properties
    1207.         SAMPLER(SamplerState_Linear_Repeat);
    1208.         TEXTURE2D(_BaseMap);
    1209.         SAMPLER(sampler_BaseMap);
    1210.        
    1211.         // -- Property used by ScenePickingPass
    1212.         #ifdef SCENEPICKINGPASS
    1213.         float4 _SelectionID;
    1214.         #endif
    1215.        
    1216.         // -- Properties used by SceneSelectionPass
    1217.         #ifdef SCENESELECTIONPASS
    1218.         int _ObjectId;
    1219.         int _PassValue;
    1220.         #endif
    1221.        
    1222.         // Graph Includes
    1223.         // GraphIncludes: <None>
    1224.        
    1225.         // Graph Functions
    1226.        
    1227.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    1228.         {
    1229.             Out = A - B;
    1230.         }
    1231.        
    1232.         void Unity_Multiply_float_float(float A, float B, out float Out)
    1233.         {
    1234.             Out = A * B;
    1235.         }
    1236.        
    1237.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    1238.         {
    1239.             Rotation = radians(Rotation);
    1240.        
    1241.             float s = sin(Rotation);
    1242.             float c = cos(Rotation);
    1243.             float one_minus_c = 1.0 - c;
    1244.        
    1245.             Axis = normalize(Axis);
    1246.        
    1247.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    1248.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    1249.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    1250.                                     };
    1251.        
    1252.             Out = mul(rot_mat,  In);
    1253.         }
    1254.        
    1255.         void Unity_Blend_Overlay_float4(float4 Base, float4 Blend, out float4 Out, float Opacity)
    1256.         {
    1257.             float4 result1 = 1.0 - 2.0 * (1.0 - Base) * (1.0 - Blend);
    1258.             float4 result2 = 2.0 * Base * Blend;
    1259.             float4 zeroOrOne = step(Base, 0.5);
    1260.             Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
    1261.             Out = lerp(Base, Out, Opacity);
    1262.         }
    1263.        
    1264.         // Custom interpolators pre vertex
    1265.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    1266.        
    1267.         // Graph Vertex
    1268.         struct VertexDescription
    1269.         {
    1270.             float3 Position;
    1271.             float3 Normal;
    1272.             float3 Tangent;
    1273.         };
    1274.        
    1275.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    1276.         {
    1277.             VertexDescription description = (VertexDescription)0;
    1278.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1279.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    1280.             #endif
    1281.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1282.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    1283.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    1284.             #endif
    1285.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1286.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    1287.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    1288.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    1289.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    1290.             #endif
    1291.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1292.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    1293.             #endif
    1294.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1295.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    1296.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    1297.             #endif
    1298.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1299.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    1300.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    1301.             #endif
    1302.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1303.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    1304.             #endif
    1305.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1306.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    1307.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    1308.             #endif
    1309.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1310.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    1311.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    1312.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    1313.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    1314.             #endif
    1315.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1316.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    1317.             #endif
    1318.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1319.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    1320.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    1321.             #endif
    1322.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1323.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    1324.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    1325.             #endif
    1326.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1327.             #if defined(_AXIS)
    1328.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    1329.             #else
    1330.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    1331.             #endif
    1332.             #endif
    1333.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1334.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    1335.             #endif
    1336.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1337.             #if defined(_ENABLED)
    1338.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    1339.             #else
    1340.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    1341.             #endif
    1342.             #endif
    1343.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    1344.             description.Normal = IN.ObjectSpaceNormal;
    1345.             description.Tangent = IN.ObjectSpaceTangent;
    1346.             return description;
    1347.         }
    1348.        
    1349.         // Custom interpolators, pre surface
    1350.         #ifdef FEATURES_GRAPH_VERTEX
    1351.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    1352.         {
    1353.         return output;
    1354.         }
    1355.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    1356.         #endif
    1357.        
    1358.         // Graph Pixel
    1359.         struct SurfaceDescription
    1360.         {
    1361.             float3 BaseColor;
    1362.             float3 NormalTS;
    1363.             float3 Emission;
    1364.             float Metallic;
    1365.             float Smoothness;
    1366.             float Occlusion;
    1367.         };
    1368.        
    1369.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    1370.         {
    1371.             SurfaceDescription surface = (SurfaceDescription)0;
    1372.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1373.             UnityTexture2D _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0 = UnityBuildTexture2DStructNoScale(_BaseMap);
    1374.             #endif
    1375.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1376.             float4 _UV_1038f1c745e44aa882dd6d672f52eb92_Out_0 = IN.uv0;
    1377.             #endif
    1378.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1379.             float4 _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.tex, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.samplerstate, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.GetTransformedUV((_UV_1038f1c745e44aa882dd6d672f52eb92_Out_0.xy)));
    1380.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_R_4 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.r;
    1381.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_G_5 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.g;
    1382.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_B_6 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.b;
    1383.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_A_7 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.a;
    1384.             #endif
    1385.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1386.             float4 _Property_53b1730c224f4a0b869af017723d52c3_Out_0 = _BaseColor;
    1387.             #endif
    1388.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1389.             float4 _Blend_f8d31fdc58974777a0eec571ab662204_Out_2;
    1390.             Unity_Blend_Overlay_float4(_SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0, _Property_53b1730c224f4a0b869af017723d52c3_Out_0, _Blend_f8d31fdc58974777a0eec571ab662204_Out_2, 1);
    1391.             #endif
    1392.             surface.BaseColor = (_Blend_f8d31fdc58974777a0eec571ab662204_Out_2.xyz);
    1393.             surface.NormalTS = IN.TangentSpaceNormal;
    1394.             surface.Emission = float3(0, 0, 0);
    1395.             surface.Metallic = 0;
    1396.             surface.Smoothness = 0.5;
    1397.             surface.Occlusion = 1;
    1398.             return surface;
    1399.         }
    1400.        
    1401.         // --------------------------------------------------
    1402.         // Build Graph Inputs
    1403.        
    1404.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    1405.         {
    1406.             VertexDescriptionInputs output;
    1407.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    1408.        
    1409.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1410.         output.ObjectSpaceNormal =                          input.normalOS;
    1411.         #endif
    1412.        
    1413.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1414.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    1415.         #endif
    1416.        
    1417.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1418.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    1419.         #endif
    1420.        
    1421.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1422.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    1423.         #endif
    1424.        
    1425.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1426.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    1427.         #endif
    1428.        
    1429.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1430.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    1431.         #endif
    1432.        
    1433.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1434.         output.ObjectSpacePosition =                        input.positionOS;
    1435.         #endif
    1436.        
    1437.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1438.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    1439.         #endif
    1440.        
    1441.        
    1442.             return output;
    1443.         }
    1444.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    1445.         {
    1446.             SurfaceDescriptionInputs output;
    1447.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    1448.        
    1449.            
    1450.        
    1451.        
    1452.        
    1453.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1454.         output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f);
    1455.         #endif
    1456.        
    1457.        
    1458.        
    1459.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1460.         output.uv0 = input.texCoord0;
    1461.         #endif
    1462.        
    1463.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1464.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    1465.         #else
    1466.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    1467.         #endif
    1468.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    1469.        
    1470.                 return output;
    1471.         }
    1472.        
    1473.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    1474.         {
    1475.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1476.         result.vertex     = float4(attributes.positionOS, 1);
    1477.         #endif
    1478.        
    1479.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1480.         result.tangent    = attributes.tangentOS;
    1481.         #endif
    1482.        
    1483.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1484.         result.normal     = attributes.normalOS;
    1485.         #endif
    1486.        
    1487.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1488.         result.texcoord   = attributes.uv0;
    1489.         #endif
    1490.        
    1491.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1492.         result.texcoord1  = attributes.uv1;
    1493.         #endif
    1494.        
    1495.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1496.         result.vertex     = float4(vertexDescription.Position, 1);
    1497.         #endif
    1498.        
    1499.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1500.         result.normal     = vertexDescription.Normal;
    1501.         #endif
    1502.        
    1503.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1504.         result.tangent    = float4(vertexDescription.Tangent, 0);
    1505.         #endif
    1506.        
    1507.             #if UNITY_ANY_INSTANCING_ENABLED
    1508.             #endif
    1509.         }
    1510.        
    1511.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    1512.         {
    1513.             result.pos = varyings.positionCS;
    1514.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1515.         result.worldPos = varyings.positionWS;
    1516.         #endif
    1517.        
    1518.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1519.         result.worldNormal = varyings.normalWS;
    1520.         #endif
    1521.        
    1522.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1523.         result.viewDir = varyings.viewDirectionWS;
    1524.         #endif
    1525.        
    1526.             // World Tangent isn't an available input on v2f_surf
    1527.        
    1528.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1529.         result._ShadowCoord = varyings.shadowCoord;
    1530.         #endif
    1531.        
    1532.        
    1533.             #if UNITY_ANY_INSTANCING_ENABLED
    1534.             #endif
    1535.             #if UNITY_SHOULD_SAMPLE_SH
    1536.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1537.         result.sh = varyings.sh;
    1538.         #endif
    1539.        
    1540.             #endif
    1541.             #if defined(LIGHTMAP_ON)
    1542.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1543.         result.lmap.xy = varyings.lightmapUV;
    1544.         #endif
    1545.        
    1546.             #endif
    1547.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    1548.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    1549.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    1550.             #endif
    1551.        
    1552.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    1553.         }
    1554.        
    1555.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    1556.         {
    1557.             result.positionCS = surfVertex.pos;
    1558.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1559.         result.positionWS = surfVertex.worldPos;
    1560.         #endif
    1561.        
    1562.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1563.         result.normalWS = surfVertex.worldNormal;
    1564.         #endif
    1565.        
    1566.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    1567.             // World Tangent isn't an available input on v2f_surf
    1568.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1569.         result.shadowCoord = surfVertex._ShadowCoord;
    1570.         #endif
    1571.        
    1572.        
    1573.             #if UNITY_ANY_INSTANCING_ENABLED
    1574.             #endif
    1575.             #if UNITY_SHOULD_SAMPLE_SH
    1576.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1577.         result.sh = surfVertex.sh;
    1578.         #endif
    1579.        
    1580.             #endif
    1581.             #if defined(LIGHTMAP_ON)
    1582.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1583.         result.lightmapUV = surfVertex.lmap.xy;
    1584.         #endif
    1585.        
    1586.             #endif
    1587.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    1588.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    1589.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    1590.             #endif
    1591.        
    1592.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    1593.         }
    1594.        
    1595.         // --------------------------------------------------
    1596.         // Main
    1597.        
    1598.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    1599.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    1600.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/PBRForwardAddPass.hlsl"
    1601.        
    1602.         ENDHLSL
    1603.         }
    1604.         Pass
    1605.         {
    1606.             Name "BuiltIn Deferred"
    1607.             Tags
    1608.             {
    1609.                 "LightMode" = "Deferred"
    1610.             }
    1611.        
    1612.         // Render State
    1613.         Cull Back
    1614.         Blend One Zero
    1615.         ZTest LEqual
    1616.         ZWrite On
    1617.        
    1618.         // Debug
    1619.         // <None>
    1620.        
    1621.         // --------------------------------------------------
    1622.         // Pass
    1623.        
    1624.         HLSLPROGRAM
    1625.        
    1626.         // Pragmas
    1627.         #pragma target 4.5
    1628.         #pragma multi_compile_instancing
    1629.         #pragma exclude_renderers nomrt
    1630.         #pragma multi_compile_prepassfinal
    1631.         #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
    1632.         #pragma vertex vert
    1633.         #pragma fragment frag
    1634.        
    1635.         // DotsInstancingOptions: <None>
    1636.         // HybridV1InjectedBuiltinProperties: <None>
    1637.        
    1638.         // Keywords
    1639.         #pragma multi_compile _ LIGHTMAP_ON
    1640.         #pragma multi_compile _ DIRLIGHTMAP_COMBINED
    1641.         #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
    1642.         #pragma multi_compile _ _SHADOWS_SOFT
    1643.         #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
    1644.         #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
    1645.         #pragma multi_compile _ _GBUFFER_NORMALS_OCT
    1646.         #pragma multi_compile _ _ENABLED
    1647.         #pragma multi_compile_local _ _AXIS
    1648.        
    1649.         #if defined(_ENABLED) && defined(_AXIS)
    1650.             #define KEYWORD_PERMUTATION_0
    1651.         #elif defined(_ENABLED)
    1652.             #define KEYWORD_PERMUTATION_1
    1653.         #elif defined(_AXIS)
    1654.             #define KEYWORD_PERMUTATION_2
    1655.         #else
    1656.             #define KEYWORD_PERMUTATION_3
    1657.         #endif
    1658.        
    1659.        
    1660.         // Defines
    1661.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1662.         #define _NORMALMAP 1
    1663.         #endif
    1664.        
    1665.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1666.         #define _NORMAL_DROPOFF_TS 1
    1667.         #endif
    1668.        
    1669.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1670.         #define ATTRIBUTES_NEED_NORMAL
    1671.         #endif
    1672.        
    1673.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1674.         #define ATTRIBUTES_NEED_TANGENT
    1675.         #endif
    1676.        
    1677.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1678.         #define ATTRIBUTES_NEED_TEXCOORD0
    1679.         #endif
    1680.        
    1681.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1682.         #define ATTRIBUTES_NEED_TEXCOORD1
    1683.         #endif
    1684.        
    1685.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1686.         #define VARYINGS_NEED_POSITION_WS
    1687.         #endif
    1688.        
    1689.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1690.         #define VARYINGS_NEED_NORMAL_WS
    1691.         #endif
    1692.        
    1693.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1694.         #define VARYINGS_NEED_TANGENT_WS
    1695.         #endif
    1696.        
    1697.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1698.         #define VARYINGS_NEED_TEXCOORD0
    1699.         #endif
    1700.        
    1701.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1702.         #define VARYINGS_NEED_VIEWDIRECTION_WS
    1703.         #endif
    1704.        
    1705.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1706.         #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    1707.         #endif
    1708.        
    1709.         #define FEATURES_GRAPH_VERTEX
    1710.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    1711.         #define SHADERPASS SHADERPASS_DEFERRED
    1712.         #define BUILTIN_TARGET_API 1
    1713.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    1714.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    1715.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    1716.         #endif
    1717.         #ifdef _BUILTIN_ALPHATEST_ON
    1718.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    1719.         #endif
    1720.         #ifdef _BUILTIN_AlphaClip
    1721.         #define _AlphaClip _BUILTIN_AlphaClip
    1722.         #endif
    1723.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    1724.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    1725.         #endif
    1726.        
    1727.        
    1728.         // custom interpolator pre-include
    1729.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    1730.        
    1731.         // Includes
    1732.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    1733.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    1734.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    1735.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    1736.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    1737.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    1738.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    1739.        
    1740.         // --------------------------------------------------
    1741.         // Structs and Packing
    1742.        
    1743.         // custom interpolators pre packing
    1744.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    1745.        
    1746.         struct Attributes
    1747.         {
    1748.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1749.              float3 positionOS : POSITION;
    1750.             #endif
    1751.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1752.              float3 normalOS : NORMAL;
    1753.             #endif
    1754.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1755.              float4 tangentOS : TANGENT;
    1756.             #endif
    1757.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1758.              float4 uv0 : TEXCOORD0;
    1759.             #endif
    1760.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1761.              float4 uv1 : TEXCOORD1;
    1762.             #endif
    1763.             #if UNITY_ANY_INSTANCING_ENABLED
    1764.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1765.              uint instanceID : INSTANCEID_SEMANTIC;
    1766.             #endif
    1767.             #endif
    1768.         };
    1769.         struct Varyings
    1770.         {
    1771.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1772.              float4 positionCS : SV_POSITION;
    1773.             #endif
    1774.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1775.              float3 positionWS;
    1776.             #endif
    1777.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1778.              float3 normalWS;
    1779.             #endif
    1780.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1781.              float4 tangentWS;
    1782.             #endif
    1783.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1784.              float4 texCoord0;
    1785.             #endif
    1786.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1787.              float3 viewDirectionWS;
    1788.             #endif
    1789.             #if defined(LIGHTMAP_ON)
    1790.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1791.              float2 lightmapUV;
    1792.             #endif
    1793.             #endif
    1794.             #if !defined(LIGHTMAP_ON)
    1795.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1796.              float3 sh;
    1797.             #endif
    1798.             #endif
    1799.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1800.              float4 fogFactorAndVertexLight;
    1801.             #endif
    1802.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1803.              float4 shadowCoord;
    1804.             #endif
    1805.             #if UNITY_ANY_INSTANCING_ENABLED
    1806.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1807.              uint instanceID : CUSTOM_INSTANCE_ID;
    1808.             #endif
    1809.             #endif
    1810.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1811.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1812.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    1813.             #endif
    1814.             #endif
    1815.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1816.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1817.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    1818.             #endif
    1819.             #endif
    1820.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1821.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1822.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    1823.             #endif
    1824.             #endif
    1825.         };
    1826.         struct SurfaceDescriptionInputs
    1827.         {
    1828.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1829.              float3 TangentSpaceNormal;
    1830.             #endif
    1831.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1832.              float4 uv0;
    1833.             #endif
    1834.         };
    1835.         struct VertexDescriptionInputs
    1836.         {
    1837.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1838.              float3 ObjectSpaceNormal;
    1839.             #endif
    1840.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1841.              float3 WorldSpaceNormal;
    1842.             #endif
    1843.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1844.              float3 ObjectSpaceTangent;
    1845.             #endif
    1846.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1847.              float3 WorldSpaceTangent;
    1848.             #endif
    1849.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1850.              float3 ObjectSpaceBiTangent;
    1851.             #endif
    1852.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1853.              float3 WorldSpaceBiTangent;
    1854.             #endif
    1855.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1856.              float3 ObjectSpacePosition;
    1857.             #endif
    1858.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1859.              float3 WorldSpacePosition;
    1860.             #endif
    1861.         };
    1862.         struct PackedVaryings
    1863.         {
    1864.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1865.              float4 positionCS : SV_POSITION;
    1866.             #endif
    1867.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1868.              float3 interp0 : INTERP0;
    1869.             #endif
    1870.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1871.              float3 interp1 : INTERP1;
    1872.             #endif
    1873.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1874.              float4 interp2 : INTERP2;
    1875.             #endif
    1876.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1877.              float4 interp3 : INTERP3;
    1878.             #endif
    1879.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1880.              float3 interp4 : INTERP4;
    1881.             #endif
    1882.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1883.              float2 interp5 : INTERP5;
    1884.             #endif
    1885.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1886.              float3 interp6 : INTERP6;
    1887.             #endif
    1888.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1889.              float4 interp7 : INTERP7;
    1890.             #endif
    1891.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1892.              float4 interp8 : INTERP8;
    1893.             #endif
    1894.             #if UNITY_ANY_INSTANCING_ENABLED
    1895.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1896.              uint instanceID : CUSTOM_INSTANCE_ID;
    1897.             #endif
    1898.             #endif
    1899.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1900.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1901.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    1902.             #endif
    1903.             #endif
    1904.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1905.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1906.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    1907.             #endif
    1908.             #endif
    1909.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1910.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1911.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    1912.             #endif
    1913.             #endif
    1914.         };
    1915.        
    1916.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    1917.         PackedVaryings PackVaryings (Varyings input)
    1918.         {
    1919.             PackedVaryings output;
    1920.             ZERO_INITIALIZE(PackedVaryings, output);
    1921.             output.positionCS = input.positionCS;
    1922.             output.interp0.xyz =  input.positionWS;
    1923.             output.interp1.xyz =  input.normalWS;
    1924.             output.interp2.xyzw =  input.tangentWS;
    1925.             output.interp3.xyzw =  input.texCoord0;
    1926.             output.interp4.xyz =  input.viewDirectionWS;
    1927.             #if defined(LIGHTMAP_ON)
    1928.             output.interp5.xy =  input.lightmapUV;
    1929.             #endif
    1930.             #if !defined(LIGHTMAP_ON)
    1931.             output.interp6.xyz =  input.sh;
    1932.             #endif
    1933.             output.interp7.xyzw =  input.fogFactorAndVertexLight;
    1934.             output.interp8.xyzw =  input.shadowCoord;
    1935.             #if UNITY_ANY_INSTANCING_ENABLED
    1936.             output.instanceID = input.instanceID;
    1937.             #endif
    1938.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1939.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    1940.             #endif
    1941.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1942.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    1943.             #endif
    1944.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1945.             output.cullFace = input.cullFace;
    1946.             #endif
    1947.             return output;
    1948.         }
    1949.        
    1950.         Varyings UnpackVaryings (PackedVaryings input)
    1951.         {
    1952.             Varyings output;
    1953.             output.positionCS = input.positionCS;
    1954.             output.positionWS = input.interp0.xyz;
    1955.             output.normalWS = input.interp1.xyz;
    1956.             output.tangentWS = input.interp2.xyzw;
    1957.             output.texCoord0 = input.interp3.xyzw;
    1958.             output.viewDirectionWS = input.interp4.xyz;
    1959.             #if defined(LIGHTMAP_ON)
    1960.             output.lightmapUV = input.interp5.xy;
    1961.             #endif
    1962.             #if !defined(LIGHTMAP_ON)
    1963.             output.sh = input.interp6.xyz;
    1964.             #endif
    1965.             output.fogFactorAndVertexLight = input.interp7.xyzw;
    1966.             output.shadowCoord = input.interp8.xyzw;
    1967.             #if UNITY_ANY_INSTANCING_ENABLED
    1968.             output.instanceID = input.instanceID;
    1969.             #endif
    1970.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    1971.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    1972.             #endif
    1973.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    1974.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    1975.             #endif
    1976.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    1977.             output.cullFace = input.cullFace;
    1978.             #endif
    1979.             return output;
    1980.         }
    1981.         #endif
    1982.        
    1983.         // --------------------------------------------------
    1984.         // Graph
    1985.        
    1986.         // Graph Properties
    1987.         CBUFFER_START(UnityPerMaterial)
    1988.         float3 _referencePosition;
    1989.         float _curvature;
    1990.         float4 _BaseMap_TexelSize;
    1991.         float4 _BaseColor;
    1992.         float _Smoothness;
    1993.         CBUFFER_END
    1994.        
    1995.         // Object and Global properties
    1996.         SAMPLER(SamplerState_Linear_Repeat);
    1997.         TEXTURE2D(_BaseMap);
    1998.         SAMPLER(sampler_BaseMap);
    1999.        
    2000.         // -- Property used by ScenePickingPass
    2001.         #ifdef SCENEPICKINGPASS
    2002.         float4 _SelectionID;
    2003.         #endif
    2004.        
    2005.         // -- Properties used by SceneSelectionPass
    2006.         #ifdef SCENESELECTIONPASS
    2007.         int _ObjectId;
    2008.         int _PassValue;
    2009.         #endif
    2010.        
    2011.         // Graph Includes
    2012.         // GraphIncludes: <None>
    2013.        
    2014.         // Graph Functions
    2015.        
    2016.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    2017.         {
    2018.             Out = A - B;
    2019.         }
    2020.        
    2021.         void Unity_Multiply_float_float(float A, float B, out float Out)
    2022.         {
    2023.             Out = A * B;
    2024.         }
    2025.        
    2026.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    2027.         {
    2028.             Rotation = radians(Rotation);
    2029.        
    2030.             float s = sin(Rotation);
    2031.             float c = cos(Rotation);
    2032.             float one_minus_c = 1.0 - c;
    2033.        
    2034.             Axis = normalize(Axis);
    2035.        
    2036.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    2037.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    2038.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    2039.                                     };
    2040.        
    2041.             Out = mul(rot_mat,  In);
    2042.         }
    2043.        
    2044.         void Unity_Blend_Overlay_float4(float4 Base, float4 Blend, out float4 Out, float Opacity)
    2045.         {
    2046.             float4 result1 = 1.0 - 2.0 * (1.0 - Base) * (1.0 - Blend);
    2047.             float4 result2 = 2.0 * Base * Blend;
    2048.             float4 zeroOrOne = step(Base, 0.5);
    2049.             Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
    2050.             Out = lerp(Base, Out, Opacity);
    2051.         }
    2052.        
    2053.         // Custom interpolators pre vertex
    2054.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    2055.        
    2056.         // Graph Vertex
    2057.         struct VertexDescription
    2058.         {
    2059.             float3 Position;
    2060.             float3 Normal;
    2061.             float3 Tangent;
    2062.         };
    2063.        
    2064.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    2065.         {
    2066.             VertexDescription description = (VertexDescription)0;
    2067.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2068.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    2069.             #endif
    2070.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2071.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    2072.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    2073.             #endif
    2074.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2075.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    2076.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    2077.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    2078.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    2079.             #endif
    2080.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2081.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    2082.             #endif
    2083.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2084.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    2085.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    2086.             #endif
    2087.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2088.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    2089.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    2090.             #endif
    2091.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2092.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    2093.             #endif
    2094.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2095.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    2096.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    2097.             #endif
    2098.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2099.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    2100.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    2101.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    2102.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    2103.             #endif
    2104.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2105.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    2106.             #endif
    2107.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2108.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    2109.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    2110.             #endif
    2111.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2112.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    2113.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    2114.             #endif
    2115.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2116.             #if defined(_AXIS)
    2117.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    2118.             #else
    2119.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    2120.             #endif
    2121.             #endif
    2122.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2123.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    2124.             #endif
    2125.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2126.             #if defined(_ENABLED)
    2127.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    2128.             #else
    2129.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    2130.             #endif
    2131.             #endif
    2132.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    2133.             description.Normal = IN.ObjectSpaceNormal;
    2134.             description.Tangent = IN.ObjectSpaceTangent;
    2135.             return description;
    2136.         }
    2137.        
    2138.         // Custom interpolators, pre surface
    2139.         #ifdef FEATURES_GRAPH_VERTEX
    2140.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    2141.         {
    2142.         return output;
    2143.         }
    2144.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    2145.         #endif
    2146.        
    2147.         // Graph Pixel
    2148.         struct SurfaceDescription
    2149.         {
    2150.             float3 BaseColor;
    2151.             float3 NormalTS;
    2152.             float3 Emission;
    2153.             float Metallic;
    2154.             float Smoothness;
    2155.             float Occlusion;
    2156.         };
    2157.        
    2158.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    2159.         {
    2160.             SurfaceDescription surface = (SurfaceDescription)0;
    2161.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2162.             UnityTexture2D _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0 = UnityBuildTexture2DStructNoScale(_BaseMap);
    2163.             #endif
    2164.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2165.             float4 _UV_1038f1c745e44aa882dd6d672f52eb92_Out_0 = IN.uv0;
    2166.             #endif
    2167.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2168.             float4 _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.tex, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.samplerstate, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.GetTransformedUV((_UV_1038f1c745e44aa882dd6d672f52eb92_Out_0.xy)));
    2169.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_R_4 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.r;
    2170.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_G_5 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.g;
    2171.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_B_6 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.b;
    2172.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_A_7 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.a;
    2173.             #endif
    2174.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2175.             float4 _Property_53b1730c224f4a0b869af017723d52c3_Out_0 = _BaseColor;
    2176.             #endif
    2177.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2178.             float4 _Blend_f8d31fdc58974777a0eec571ab662204_Out_2;
    2179.             Unity_Blend_Overlay_float4(_SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0, _Property_53b1730c224f4a0b869af017723d52c3_Out_0, _Blend_f8d31fdc58974777a0eec571ab662204_Out_2, 1);
    2180.             #endif
    2181.             surface.BaseColor = (_Blend_f8d31fdc58974777a0eec571ab662204_Out_2.xyz);
    2182.             surface.NormalTS = IN.TangentSpaceNormal;
    2183.             surface.Emission = float3(0, 0, 0);
    2184.             surface.Metallic = 0;
    2185.             surface.Smoothness = 0.5;
    2186.             surface.Occlusion = 1;
    2187.             return surface;
    2188.         }
    2189.        
    2190.         // --------------------------------------------------
    2191.         // Build Graph Inputs
    2192.        
    2193.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    2194.         {
    2195.             VertexDescriptionInputs output;
    2196.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    2197.        
    2198.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2199.         output.ObjectSpaceNormal =                          input.normalOS;
    2200.         #endif
    2201.        
    2202.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2203.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    2204.         #endif
    2205.        
    2206.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2207.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    2208.         #endif
    2209.        
    2210.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2211.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    2212.         #endif
    2213.        
    2214.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2215.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    2216.         #endif
    2217.        
    2218.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2219.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    2220.         #endif
    2221.        
    2222.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2223.         output.ObjectSpacePosition =                        input.positionOS;
    2224.         #endif
    2225.        
    2226.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2227.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    2228.         #endif
    2229.        
    2230.        
    2231.             return output;
    2232.         }
    2233.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    2234.         {
    2235.             SurfaceDescriptionInputs output;
    2236.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    2237.        
    2238.            
    2239.        
    2240.        
    2241.        
    2242.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2243.         output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f);
    2244.         #endif
    2245.        
    2246.        
    2247.        
    2248.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2249.         output.uv0 = input.texCoord0;
    2250.         #endif
    2251.        
    2252.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2253.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    2254.         #else
    2255.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    2256.         #endif
    2257.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    2258.        
    2259.                 return output;
    2260.         }
    2261.        
    2262.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    2263.         {
    2264.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2265.         result.vertex     = float4(attributes.positionOS, 1);
    2266.         #endif
    2267.        
    2268.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2269.         result.tangent    = attributes.tangentOS;
    2270.         #endif
    2271.        
    2272.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2273.         result.normal     = attributes.normalOS;
    2274.         #endif
    2275.        
    2276.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2277.         result.texcoord   = attributes.uv0;
    2278.         #endif
    2279.        
    2280.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2281.         result.texcoord1  = attributes.uv1;
    2282.         #endif
    2283.        
    2284.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2285.         result.vertex     = float4(vertexDescription.Position, 1);
    2286.         #endif
    2287.        
    2288.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2289.         result.normal     = vertexDescription.Normal;
    2290.         #endif
    2291.        
    2292.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2293.         result.tangent    = float4(vertexDescription.Tangent, 0);
    2294.         #endif
    2295.        
    2296.             #if UNITY_ANY_INSTANCING_ENABLED
    2297.             #endif
    2298.         }
    2299.        
    2300.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    2301.         {
    2302.             result.pos = varyings.positionCS;
    2303.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2304.         result.worldPos = varyings.positionWS;
    2305.         #endif
    2306.        
    2307.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2308.         result.worldNormal = varyings.normalWS;
    2309.         #endif
    2310.        
    2311.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2312.         result.viewDir = varyings.viewDirectionWS;
    2313.         #endif
    2314.        
    2315.             // World Tangent isn't an available input on v2f_surf
    2316.        
    2317.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2318.         result._ShadowCoord = varyings.shadowCoord;
    2319.         #endif
    2320.        
    2321.        
    2322.             #if UNITY_ANY_INSTANCING_ENABLED
    2323.             #endif
    2324.             #if UNITY_SHOULD_SAMPLE_SH
    2325.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2326.         result.sh = varyings.sh;
    2327.         #endif
    2328.        
    2329.             #endif
    2330.             #if defined(LIGHTMAP_ON)
    2331.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2332.         result.lmap.xy = varyings.lightmapUV;
    2333.         #endif
    2334.        
    2335.             #endif
    2336.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    2337.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    2338.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    2339.             #endif
    2340.        
    2341.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    2342.         }
    2343.        
    2344.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    2345.         {
    2346.             result.positionCS = surfVertex.pos;
    2347.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2348.         result.positionWS = surfVertex.worldPos;
    2349.         #endif
    2350.        
    2351.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2352.         result.normalWS = surfVertex.worldNormal;
    2353.         #endif
    2354.        
    2355.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    2356.             // World Tangent isn't an available input on v2f_surf
    2357.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2358.         result.shadowCoord = surfVertex._ShadowCoord;
    2359.         #endif
    2360.        
    2361.        
    2362.             #if UNITY_ANY_INSTANCING_ENABLED
    2363.             #endif
    2364.             #if UNITY_SHOULD_SAMPLE_SH
    2365.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2366.         result.sh = surfVertex.sh;
    2367.         #endif
    2368.        
    2369.             #endif
    2370.             #if defined(LIGHTMAP_ON)
    2371.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2372.         result.lightmapUV = surfVertex.lmap.xy;
    2373.         #endif
    2374.        
    2375.             #endif
    2376.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    2377.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    2378.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    2379.             #endif
    2380.        
    2381.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    2382.         }
    2383.        
    2384.         // --------------------------------------------------
    2385.         // Main
    2386.        
    2387.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    2388.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    2389.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/PBRDeferredPass.hlsl"
    2390.        
    2391.         ENDHLSL
    2392.         }
    2393.         Pass
    2394.         {
    2395.             Name "ShadowCaster"
    2396.             Tags
    2397.             {
    2398.                 "LightMode" = "ShadowCaster"
    2399.             }
    2400.        
    2401.         // Render State
    2402.         Cull Back
    2403.         Blend One Zero
    2404.         ZTest LEqual
    2405.         ZWrite On
    2406.         ColorMask 0
    2407.        
    2408.         // Debug
    2409.         // <None>
    2410.        
    2411.         // --------------------------------------------------
    2412.         // Pass
    2413.        
    2414.         HLSLPROGRAM
    2415.        
    2416.         // Pragmas
    2417.         #pragma target 3.0
    2418.         #pragma multi_compile_shadowcaster
    2419.         #pragma vertex vert
    2420.         #pragma fragment frag
    2421.        
    2422.         // DotsInstancingOptions: <None>
    2423.         // HybridV1InjectedBuiltinProperties: <None>
    2424.        
    2425.         // Keywords
    2426.         #pragma multi_compile _ _CASTING_PUNCTUAL_LIGHT_SHADOW
    2427.         #pragma multi_compile _ _ENABLED
    2428.         #pragma multi_compile_local _ _AXIS
    2429.        
    2430.         #if defined(_ENABLED) && defined(_AXIS)
    2431.             #define KEYWORD_PERMUTATION_0
    2432.         #elif defined(_ENABLED)
    2433.             #define KEYWORD_PERMUTATION_1
    2434.         #elif defined(_AXIS)
    2435.             #define KEYWORD_PERMUTATION_2
    2436.         #else
    2437.             #define KEYWORD_PERMUTATION_3
    2438.         #endif
    2439.        
    2440.        
    2441.         // Defines
    2442.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2443.         #define _NORMALMAP 1
    2444.         #endif
    2445.        
    2446.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2447.         #define _NORMAL_DROPOFF_TS 1
    2448.         #endif
    2449.        
    2450.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2451.         #define ATTRIBUTES_NEED_NORMAL
    2452.         #endif
    2453.        
    2454.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2455.         #define ATTRIBUTES_NEED_TANGENT
    2456.         #endif
    2457.        
    2458.         #define FEATURES_GRAPH_VERTEX
    2459.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    2460.         #define SHADERPASS SHADERPASS_SHADOWCASTER
    2461.         #define BUILTIN_TARGET_API 1
    2462.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    2463.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    2464.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    2465.         #endif
    2466.         #ifdef _BUILTIN_ALPHATEST_ON
    2467.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    2468.         #endif
    2469.         #ifdef _BUILTIN_AlphaClip
    2470.         #define _AlphaClip _BUILTIN_AlphaClip
    2471.         #endif
    2472.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    2473.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    2474.         #endif
    2475.        
    2476.        
    2477.         // custom interpolator pre-include
    2478.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    2479.        
    2480.         // Includes
    2481.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    2482.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    2483.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    2484.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    2485.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    2486.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    2487.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    2488.        
    2489.         // --------------------------------------------------
    2490.         // Structs and Packing
    2491.        
    2492.         // custom interpolators pre packing
    2493.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    2494.        
    2495.         struct Attributes
    2496.         {
    2497.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2498.              float3 positionOS : POSITION;
    2499.             #endif
    2500.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2501.              float3 normalOS : NORMAL;
    2502.             #endif
    2503.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2504.              float4 tangentOS : TANGENT;
    2505.             #endif
    2506.             #if UNITY_ANY_INSTANCING_ENABLED
    2507.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2508.              uint instanceID : INSTANCEID_SEMANTIC;
    2509.             #endif
    2510.             #endif
    2511.         };
    2512.         struct Varyings
    2513.         {
    2514.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2515.              float4 positionCS : SV_POSITION;
    2516.             #endif
    2517.             #if UNITY_ANY_INSTANCING_ENABLED
    2518.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2519.              uint instanceID : CUSTOM_INSTANCE_ID;
    2520.             #endif
    2521.             #endif
    2522.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    2523.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2524.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    2525.             #endif
    2526.             #endif
    2527.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    2528.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2529.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    2530.             #endif
    2531.             #endif
    2532.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2533.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2534.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    2535.             #endif
    2536.             #endif
    2537.         };
    2538.         struct SurfaceDescriptionInputs
    2539.         {
    2540.         };
    2541.         struct VertexDescriptionInputs
    2542.         {
    2543.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2544.              float3 ObjectSpaceNormal;
    2545.             #endif
    2546.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2547.              float3 WorldSpaceNormal;
    2548.             #endif
    2549.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2550.              float3 ObjectSpaceTangent;
    2551.             #endif
    2552.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2553.              float3 WorldSpaceTangent;
    2554.             #endif
    2555.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2556.              float3 ObjectSpaceBiTangent;
    2557.             #endif
    2558.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2559.              float3 WorldSpaceBiTangent;
    2560.             #endif
    2561.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2562.              float3 ObjectSpacePosition;
    2563.             #endif
    2564.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2565.              float3 WorldSpacePosition;
    2566.             #endif
    2567.         };
    2568.         struct PackedVaryings
    2569.         {
    2570.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2571.              float4 positionCS : SV_POSITION;
    2572.             #endif
    2573.             #if UNITY_ANY_INSTANCING_ENABLED
    2574.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2575.              uint instanceID : CUSTOM_INSTANCE_ID;
    2576.             #endif
    2577.             #endif
    2578.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    2579.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2580.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    2581.             #endif
    2582.             #endif
    2583.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    2584.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2585.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    2586.             #endif
    2587.             #endif
    2588.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2589.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2590.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    2591.             #endif
    2592.             #endif
    2593.         };
    2594.        
    2595.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2596.         PackedVaryings PackVaryings (Varyings input)
    2597.         {
    2598.             PackedVaryings output;
    2599.             ZERO_INITIALIZE(PackedVaryings, output);
    2600.             output.positionCS = input.positionCS;
    2601.             #if UNITY_ANY_INSTANCING_ENABLED
    2602.             output.instanceID = input.instanceID;
    2603.             #endif
    2604.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    2605.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    2606.             #endif
    2607.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    2608.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    2609.             #endif
    2610.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2611.             output.cullFace = input.cullFace;
    2612.             #endif
    2613.             return output;
    2614.         }
    2615.        
    2616.         Varyings UnpackVaryings (PackedVaryings input)
    2617.         {
    2618.             Varyings output;
    2619.             output.positionCS = input.positionCS;
    2620.             #if UNITY_ANY_INSTANCING_ENABLED
    2621.             output.instanceID = input.instanceID;
    2622.             #endif
    2623.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    2624.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    2625.             #endif
    2626.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    2627.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    2628.             #endif
    2629.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2630.             output.cullFace = input.cullFace;
    2631.             #endif
    2632.             return output;
    2633.         }
    2634.         #endif
    2635.        
    2636.         // --------------------------------------------------
    2637.         // Graph
    2638.        
    2639.         // Graph Properties
    2640.         CBUFFER_START(UnityPerMaterial)
    2641.         float3 _referencePosition;
    2642.         float _curvature;
    2643.         float4 _BaseMap_TexelSize;
    2644.         float4 _BaseColor;
    2645.         float _Smoothness;
    2646.         CBUFFER_END
    2647.        
    2648.         // Object and Global properties
    2649.         SAMPLER(SamplerState_Linear_Repeat);
    2650.         TEXTURE2D(_BaseMap);
    2651.         SAMPLER(sampler_BaseMap);
    2652.        
    2653.         // -- Property used by ScenePickingPass
    2654.         #ifdef SCENEPICKINGPASS
    2655.         float4 _SelectionID;
    2656.         #endif
    2657.        
    2658.         // -- Properties used by SceneSelectionPass
    2659.         #ifdef SCENESELECTIONPASS
    2660.         int _ObjectId;
    2661.         int _PassValue;
    2662.         #endif
    2663.        
    2664.         // Graph Includes
    2665.         // GraphIncludes: <None>
    2666.        
    2667.         // Graph Functions
    2668.        
    2669.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    2670.         {
    2671.             Out = A - B;
    2672.         }
    2673.        
    2674.         void Unity_Multiply_float_float(float A, float B, out float Out)
    2675.         {
    2676.             Out = A * B;
    2677.         }
    2678.        
    2679.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    2680.         {
    2681.             Rotation = radians(Rotation);
    2682.        
    2683.             float s = sin(Rotation);
    2684.             float c = cos(Rotation);
    2685.             float one_minus_c = 1.0 - c;
    2686.        
    2687.             Axis = normalize(Axis);
    2688.        
    2689.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    2690.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    2691.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    2692.                                     };
    2693.        
    2694.             Out = mul(rot_mat,  In);
    2695.         }
    2696.        
    2697.         // Custom interpolators pre vertex
    2698.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    2699.        
    2700.         // Graph Vertex
    2701.         struct VertexDescription
    2702.         {
    2703.             float3 Position;
    2704.             float3 Normal;
    2705.             float3 Tangent;
    2706.         };
    2707.        
    2708.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    2709.         {
    2710.             VertexDescription description = (VertexDescription)0;
    2711.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2712.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    2713.             #endif
    2714.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2715.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    2716.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    2717.             #endif
    2718.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2719.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    2720.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    2721.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    2722.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    2723.             #endif
    2724.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2725.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    2726.             #endif
    2727.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2728.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    2729.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    2730.             #endif
    2731.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2732.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    2733.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    2734.             #endif
    2735.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2736.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    2737.             #endif
    2738.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2739.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    2740.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    2741.             #endif
    2742.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2743.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    2744.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    2745.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    2746.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    2747.             #endif
    2748.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2749.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    2750.             #endif
    2751.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2752.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    2753.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    2754.             #endif
    2755.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2756.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    2757.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    2758.             #endif
    2759.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2760.             #if defined(_AXIS)
    2761.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    2762.             #else
    2763.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    2764.             #endif
    2765.             #endif
    2766.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2767.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    2768.             #endif
    2769.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2770.             #if defined(_ENABLED)
    2771.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    2772.             #else
    2773.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    2774.             #endif
    2775.             #endif
    2776.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    2777.             description.Normal = IN.ObjectSpaceNormal;
    2778.             description.Tangent = IN.ObjectSpaceTangent;
    2779.             return description;
    2780.         }
    2781.        
    2782.         // Custom interpolators, pre surface
    2783.         #ifdef FEATURES_GRAPH_VERTEX
    2784.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    2785.         {
    2786.         return output;
    2787.         }
    2788.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    2789.         #endif
    2790.        
    2791.         // Graph Pixel
    2792.         struct SurfaceDescription
    2793.         {
    2794.         };
    2795.        
    2796.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    2797.         {
    2798.             SurfaceDescription surface = (SurfaceDescription)0;
    2799.             return surface;
    2800.         }
    2801.        
    2802.         // --------------------------------------------------
    2803.         // Build Graph Inputs
    2804.        
    2805.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    2806.         {
    2807.             VertexDescriptionInputs output;
    2808.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    2809.        
    2810.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2811.         output.ObjectSpaceNormal =                          input.normalOS;
    2812.         #endif
    2813.        
    2814.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2815.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    2816.         #endif
    2817.        
    2818.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2819.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    2820.         #endif
    2821.        
    2822.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2823.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    2824.         #endif
    2825.        
    2826.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2827.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    2828.         #endif
    2829.        
    2830.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2831.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    2832.         #endif
    2833.        
    2834.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2835.         output.ObjectSpacePosition =                        input.positionOS;
    2836.         #endif
    2837.        
    2838.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2839.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    2840.         #endif
    2841.        
    2842.        
    2843.             return output;
    2844.         }
    2845.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    2846.         {
    2847.             SurfaceDescriptionInputs output;
    2848.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    2849.        
    2850.            
    2851.        
    2852.        
    2853.        
    2854.        
    2855.        
    2856.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    2857.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    2858.         #else
    2859.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    2860.         #endif
    2861.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    2862.        
    2863.                 return output;
    2864.         }
    2865.        
    2866.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    2867.         {
    2868.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2869.         result.vertex     = float4(attributes.positionOS, 1);
    2870.         #endif
    2871.        
    2872.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2873.         result.tangent    = attributes.tangentOS;
    2874.         #endif
    2875.        
    2876.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2877.         result.normal     = attributes.normalOS;
    2878.         #endif
    2879.        
    2880.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2881.         result.vertex     = float4(vertexDescription.Position, 1);
    2882.         #endif
    2883.        
    2884.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2885.         result.normal     = vertexDescription.Normal;
    2886.         #endif
    2887.        
    2888.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2889.         result.tangent    = float4(vertexDescription.Tangent, 0);
    2890.         #endif
    2891.        
    2892.             #if UNITY_ANY_INSTANCING_ENABLED
    2893.             #endif
    2894.         }
    2895.        
    2896.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    2897.         {
    2898.             result.pos = varyings.positionCS;
    2899.             // World Tangent isn't an available input on v2f_surf
    2900.        
    2901.        
    2902.             #if UNITY_ANY_INSTANCING_ENABLED
    2903.             #endif
    2904.             #if UNITY_SHOULD_SAMPLE_SH
    2905.             #endif
    2906.             #if defined(LIGHTMAP_ON)
    2907.             #endif
    2908.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    2909.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    2910.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    2911.             #endif
    2912.        
    2913.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    2914.         }
    2915.        
    2916.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    2917.         {
    2918.             result.positionCS = surfVertex.pos;
    2919.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    2920.             // World Tangent isn't an available input on v2f_surf
    2921.        
    2922.             #if UNITY_ANY_INSTANCING_ENABLED
    2923.             #endif
    2924.             #if UNITY_SHOULD_SAMPLE_SH
    2925.             #endif
    2926.             #if defined(LIGHTMAP_ON)
    2927.             #endif
    2928.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    2929.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    2930.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    2931.             #endif
    2932.        
    2933.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    2934.         }
    2935.        
    2936.         // --------------------------------------------------
    2937.         // Main
    2938.        
    2939.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    2940.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    2941.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShadowCasterPass.hlsl"
    2942.        
    2943.         ENDHLSL
    2944.         }
    2945.         Pass
    2946.         {
    2947.             Name "DepthOnly"
    2948.             Tags
    2949.             {
    2950.                 "LightMode" = "DepthOnly"
    2951.             }
    2952.        
    2953.         // Render State
    2954.         Cull Back
    2955.         Blend One Zero
    2956.         ZTest LEqual
    2957.         ZWrite On
    2958.         ColorMask 0
    2959.        
    2960.         // Debug
    2961.         // <None>
    2962.        
    2963.         // --------------------------------------------------
    2964.         // Pass
    2965.        
    2966.         HLSLPROGRAM
    2967.        
    2968.         // Pragmas
    2969.         #pragma target 3.0
    2970.         #pragma multi_compile_instancing
    2971.         #pragma vertex vert
    2972.         #pragma fragment frag
    2973.        
    2974.         // DotsInstancingOptions: <None>
    2975.         // HybridV1InjectedBuiltinProperties: <None>
    2976.        
    2977.         // Keywords
    2978.         // PassKeywords: <None>
    2979.         #pragma multi_compile _ _ENABLED
    2980.         #pragma multi_compile_local _ _AXIS
    2981.        
    2982.         #if defined(_ENABLED) && defined(_AXIS)
    2983.             #define KEYWORD_PERMUTATION_0
    2984.         #elif defined(_ENABLED)
    2985.             #define KEYWORD_PERMUTATION_1
    2986.         #elif defined(_AXIS)
    2987.             #define KEYWORD_PERMUTATION_2
    2988.         #else
    2989.             #define KEYWORD_PERMUTATION_3
    2990.         #endif
    2991.        
    2992.        
    2993.         // Defines
    2994.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2995.         #define _NORMALMAP 1
    2996.         #endif
    2997.        
    2998.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    2999.         #define _NORMAL_DROPOFF_TS 1
    3000.         #endif
    3001.        
    3002.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3003.         #define ATTRIBUTES_NEED_NORMAL
    3004.         #endif
    3005.        
    3006.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3007.         #define ATTRIBUTES_NEED_TANGENT
    3008.         #endif
    3009.        
    3010.         #define FEATURES_GRAPH_VERTEX
    3011.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    3012.         #define SHADERPASS SHADERPASS_DEPTHONLY
    3013.         #define BUILTIN_TARGET_API 1
    3014.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    3015.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    3016.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    3017.         #endif
    3018.         #ifdef _BUILTIN_ALPHATEST_ON
    3019.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    3020.         #endif
    3021.         #ifdef _BUILTIN_AlphaClip
    3022.         #define _AlphaClip _BUILTIN_AlphaClip
    3023.         #endif
    3024.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    3025.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    3026.         #endif
    3027.        
    3028.        
    3029.         // custom interpolator pre-include
    3030.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    3031.        
    3032.         // Includes
    3033.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    3034.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    3035.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    3036.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    3037.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    3038.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    3039.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    3040.        
    3041.         // --------------------------------------------------
    3042.         // Structs and Packing
    3043.        
    3044.         // custom interpolators pre packing
    3045.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    3046.        
    3047.         struct Attributes
    3048.         {
    3049.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3050.              float3 positionOS : POSITION;
    3051.             #endif
    3052.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3053.              float3 normalOS : NORMAL;
    3054.             #endif
    3055.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3056.              float4 tangentOS : TANGENT;
    3057.             #endif
    3058.             #if UNITY_ANY_INSTANCING_ENABLED
    3059.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3060.              uint instanceID : INSTANCEID_SEMANTIC;
    3061.             #endif
    3062.             #endif
    3063.         };
    3064.         struct Varyings
    3065.         {
    3066.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3067.              float4 positionCS : SV_POSITION;
    3068.             #endif
    3069.             #if UNITY_ANY_INSTANCING_ENABLED
    3070.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3071.              uint instanceID : CUSTOM_INSTANCE_ID;
    3072.             #endif
    3073.             #endif
    3074.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3075.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3076.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    3077.             #endif
    3078.             #endif
    3079.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3080.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3081.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    3082.             #endif
    3083.             #endif
    3084.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3085.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3086.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    3087.             #endif
    3088.             #endif
    3089.         };
    3090.         struct SurfaceDescriptionInputs
    3091.         {
    3092.         };
    3093.         struct VertexDescriptionInputs
    3094.         {
    3095.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3096.              float3 ObjectSpaceNormal;
    3097.             #endif
    3098.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3099.              float3 WorldSpaceNormal;
    3100.             #endif
    3101.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3102.              float3 ObjectSpaceTangent;
    3103.             #endif
    3104.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3105.              float3 WorldSpaceTangent;
    3106.             #endif
    3107.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3108.              float3 ObjectSpaceBiTangent;
    3109.             #endif
    3110.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3111.              float3 WorldSpaceBiTangent;
    3112.             #endif
    3113.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3114.              float3 ObjectSpacePosition;
    3115.             #endif
    3116.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3117.              float3 WorldSpacePosition;
    3118.             #endif
    3119.         };
    3120.         struct PackedVaryings
    3121.         {
    3122.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3123.              float4 positionCS : SV_POSITION;
    3124.             #endif
    3125.             #if UNITY_ANY_INSTANCING_ENABLED
    3126.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3127.              uint instanceID : CUSTOM_INSTANCE_ID;
    3128.             #endif
    3129.             #endif
    3130.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3131.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3132.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    3133.             #endif
    3134.             #endif
    3135.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3136.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3137.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    3138.             #endif
    3139.             #endif
    3140.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3141.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3142.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    3143.             #endif
    3144.             #endif
    3145.         };
    3146.        
    3147.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3148.         PackedVaryings PackVaryings (Varyings input)
    3149.         {
    3150.             PackedVaryings output;
    3151.             ZERO_INITIALIZE(PackedVaryings, output);
    3152.             output.positionCS = input.positionCS;
    3153.             #if UNITY_ANY_INSTANCING_ENABLED
    3154.             output.instanceID = input.instanceID;
    3155.             #endif
    3156.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3157.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    3158.             #endif
    3159.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3160.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    3161.             #endif
    3162.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3163.             output.cullFace = input.cullFace;
    3164.             #endif
    3165.             return output;
    3166.         }
    3167.        
    3168.         Varyings UnpackVaryings (PackedVaryings input)
    3169.         {
    3170.             Varyings output;
    3171.             output.positionCS = input.positionCS;
    3172.             #if UNITY_ANY_INSTANCING_ENABLED
    3173.             output.instanceID = input.instanceID;
    3174.             #endif
    3175.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3176.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    3177.             #endif
    3178.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3179.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    3180.             #endif
    3181.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3182.             output.cullFace = input.cullFace;
    3183.             #endif
    3184.             return output;
    3185.         }
    3186.         #endif
    3187.        
    3188.         // --------------------------------------------------
    3189.         // Graph
    3190.        
    3191.         // Graph Properties
    3192.         CBUFFER_START(UnityPerMaterial)
    3193.         float3 _referencePosition;
    3194.         float _curvature;
    3195.         float4 _BaseMap_TexelSize;
    3196.         float4 _BaseColor;
    3197.         float _Smoothness;
    3198.         CBUFFER_END
    3199.        
    3200.         // Object and Global properties
    3201.         SAMPLER(SamplerState_Linear_Repeat);
    3202.         TEXTURE2D(_BaseMap);
    3203.         SAMPLER(sampler_BaseMap);
    3204.        
    3205.         // -- Property used by ScenePickingPass
    3206.         #ifdef SCENEPICKINGPASS
    3207.         float4 _SelectionID;
    3208.         #endif
    3209.        
    3210.         // -- Properties used by SceneSelectionPass
    3211.         #ifdef SCENESELECTIONPASS
    3212.         int _ObjectId;
    3213.         int _PassValue;
    3214.         #endif
    3215.        
    3216.         // Graph Includes
    3217.         // GraphIncludes: <None>
    3218.        
    3219.         // Graph Functions
    3220.        
    3221.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    3222.         {
    3223.             Out = A - B;
    3224.         }
    3225.        
    3226.         void Unity_Multiply_float_float(float A, float B, out float Out)
    3227.         {
    3228.             Out = A * B;
    3229.         }
    3230.        
    3231.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    3232.         {
    3233.             Rotation = radians(Rotation);
    3234.        
    3235.             float s = sin(Rotation);
    3236.             float c = cos(Rotation);
    3237.             float one_minus_c = 1.0 - c;
    3238.        
    3239.             Axis = normalize(Axis);
    3240.        
    3241.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    3242.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    3243.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    3244.                                     };
    3245.        
    3246.             Out = mul(rot_mat,  In);
    3247.         }
    3248.        
    3249.         // Custom interpolators pre vertex
    3250.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    3251.        
    3252.         // Graph Vertex
    3253.         struct VertexDescription
    3254.         {
    3255.             float3 Position;
    3256.             float3 Normal;
    3257.             float3 Tangent;
    3258.         };
    3259.        
    3260.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    3261.         {
    3262.             VertexDescription description = (VertexDescription)0;
    3263.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3264.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    3265.             #endif
    3266.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3267.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    3268.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    3269.             #endif
    3270.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3271.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    3272.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    3273.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    3274.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    3275.             #endif
    3276.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3277.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    3278.             #endif
    3279.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3280.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    3281.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    3282.             #endif
    3283.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3284.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    3285.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    3286.             #endif
    3287.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3288.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    3289.             #endif
    3290.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3291.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    3292.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    3293.             #endif
    3294.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3295.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    3296.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    3297.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    3298.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    3299.             #endif
    3300.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3301.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    3302.             #endif
    3303.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3304.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    3305.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    3306.             #endif
    3307.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3308.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    3309.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    3310.             #endif
    3311.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3312.             #if defined(_AXIS)
    3313.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    3314.             #else
    3315.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    3316.             #endif
    3317.             #endif
    3318.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3319.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    3320.             #endif
    3321.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3322.             #if defined(_ENABLED)
    3323.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    3324.             #else
    3325.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    3326.             #endif
    3327.             #endif
    3328.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    3329.             description.Normal = IN.ObjectSpaceNormal;
    3330.             description.Tangent = IN.ObjectSpaceTangent;
    3331.             return description;
    3332.         }
    3333.        
    3334.         // Custom interpolators, pre surface
    3335.         #ifdef FEATURES_GRAPH_VERTEX
    3336.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    3337.         {
    3338.         return output;
    3339.         }
    3340.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    3341.         #endif
    3342.        
    3343.         // Graph Pixel
    3344.         struct SurfaceDescription
    3345.         {
    3346.         };
    3347.        
    3348.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    3349.         {
    3350.             SurfaceDescription surface = (SurfaceDescription)0;
    3351.             return surface;
    3352.         }
    3353.        
    3354.         // --------------------------------------------------
    3355.         // Build Graph Inputs
    3356.        
    3357.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    3358.         {
    3359.             VertexDescriptionInputs output;
    3360.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    3361.        
    3362.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3363.         output.ObjectSpaceNormal =                          input.normalOS;
    3364.         #endif
    3365.        
    3366.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3367.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    3368.         #endif
    3369.        
    3370.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3371.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    3372.         #endif
    3373.        
    3374.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3375.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    3376.         #endif
    3377.        
    3378.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3379.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    3380.         #endif
    3381.        
    3382.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3383.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    3384.         #endif
    3385.        
    3386.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3387.         output.ObjectSpacePosition =                        input.positionOS;
    3388.         #endif
    3389.        
    3390.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3391.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    3392.         #endif
    3393.        
    3394.        
    3395.             return output;
    3396.         }
    3397.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    3398.         {
    3399.             SurfaceDescriptionInputs output;
    3400.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    3401.        
    3402.            
    3403.        
    3404.        
    3405.        
    3406.        
    3407.        
    3408.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3409.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    3410.         #else
    3411.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    3412.         #endif
    3413.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    3414.        
    3415.                 return output;
    3416.         }
    3417.        
    3418.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    3419.         {
    3420.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3421.         result.vertex     = float4(attributes.positionOS, 1);
    3422.         #endif
    3423.        
    3424.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3425.         result.tangent    = attributes.tangentOS;
    3426.         #endif
    3427.        
    3428.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3429.         result.normal     = attributes.normalOS;
    3430.         #endif
    3431.        
    3432.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3433.         result.vertex     = float4(vertexDescription.Position, 1);
    3434.         #endif
    3435.        
    3436.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3437.         result.normal     = vertexDescription.Normal;
    3438.         #endif
    3439.        
    3440.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3441.         result.tangent    = float4(vertexDescription.Tangent, 0);
    3442.         #endif
    3443.        
    3444.             #if UNITY_ANY_INSTANCING_ENABLED
    3445.             #endif
    3446.         }
    3447.        
    3448.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    3449.         {
    3450.             result.pos = varyings.positionCS;
    3451.             // World Tangent isn't an available input on v2f_surf
    3452.        
    3453.        
    3454.             #if UNITY_ANY_INSTANCING_ENABLED
    3455.             #endif
    3456.             #if UNITY_SHOULD_SAMPLE_SH
    3457.             #endif
    3458.             #if defined(LIGHTMAP_ON)
    3459.             #endif
    3460.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    3461.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    3462.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    3463.             #endif
    3464.        
    3465.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    3466.         }
    3467.        
    3468.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    3469.         {
    3470.             result.positionCS = surfVertex.pos;
    3471.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    3472.             // World Tangent isn't an available input on v2f_surf
    3473.        
    3474.             #if UNITY_ANY_INSTANCING_ENABLED
    3475.             #endif
    3476.             #if UNITY_SHOULD_SAMPLE_SH
    3477.             #endif
    3478.             #if defined(LIGHTMAP_ON)
    3479.             #endif
    3480.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    3481.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    3482.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    3483.             #endif
    3484.        
    3485.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    3486.         }
    3487.        
    3488.         // --------------------------------------------------
    3489.         // Main
    3490.        
    3491.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    3492.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    3493.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl"
    3494.        
    3495.         ENDHLSL
    3496.         }
    3497.         Pass
    3498.         {
    3499.             Name "Meta"
    3500.             Tags
    3501.             {
    3502.                 "LightMode" = "Meta"
    3503.             }
    3504.        
    3505.         // Render State
    3506.         Cull Off
    3507.        
    3508.         // Debug
    3509.         // <None>
    3510.        
    3511.         // --------------------------------------------------
    3512.         // Pass
    3513.        
    3514.         HLSLPROGRAM
    3515.        
    3516.         // Pragmas
    3517.         #pragma target 3.0
    3518.         #pragma vertex vert
    3519.         #pragma fragment frag
    3520.        
    3521.         // DotsInstancingOptions: <None>
    3522.         // HybridV1InjectedBuiltinProperties: <None>
    3523.        
    3524.         // Keywords
    3525.         #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
    3526.         #pragma multi_compile _ _ENABLED
    3527.         #pragma multi_compile_local _ _AXIS
    3528.        
    3529.         #if defined(_ENABLED) && defined(_AXIS)
    3530.             #define KEYWORD_PERMUTATION_0
    3531.         #elif defined(_ENABLED)
    3532.             #define KEYWORD_PERMUTATION_1
    3533.         #elif defined(_AXIS)
    3534.             #define KEYWORD_PERMUTATION_2
    3535.         #else
    3536.             #define KEYWORD_PERMUTATION_3
    3537.         #endif
    3538.        
    3539.        
    3540.         // Defines
    3541.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3542.         #define _NORMALMAP 1
    3543.         #endif
    3544.        
    3545.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3546.         #define _NORMAL_DROPOFF_TS 1
    3547.         #endif
    3548.        
    3549.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3550.         #define ATTRIBUTES_NEED_NORMAL
    3551.         #endif
    3552.        
    3553.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3554.         #define ATTRIBUTES_NEED_TANGENT
    3555.         #endif
    3556.        
    3557.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3558.         #define ATTRIBUTES_NEED_TEXCOORD0
    3559.         #endif
    3560.        
    3561.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3562.         #define ATTRIBUTES_NEED_TEXCOORD1
    3563.         #endif
    3564.        
    3565.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3566.         #define ATTRIBUTES_NEED_TEXCOORD2
    3567.         #endif
    3568.        
    3569.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3570.         #define VARYINGS_NEED_TEXCOORD0
    3571.         #endif
    3572.        
    3573.         #define FEATURES_GRAPH_VERTEX
    3574.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    3575.         #define SHADERPASS SHADERPASS_META
    3576.         #define BUILTIN_TARGET_API 1
    3577.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    3578.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    3579.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    3580.         #endif
    3581.         #ifdef _BUILTIN_ALPHATEST_ON
    3582.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    3583.         #endif
    3584.         #ifdef _BUILTIN_AlphaClip
    3585.         #define _AlphaClip _BUILTIN_AlphaClip
    3586.         #endif
    3587.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    3588.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    3589.         #endif
    3590.        
    3591.        
    3592.         // custom interpolator pre-include
    3593.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    3594.        
    3595.         // Includes
    3596.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    3597.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    3598.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    3599.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    3600.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    3601.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    3602.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    3603.        
    3604.         // --------------------------------------------------
    3605.         // Structs and Packing
    3606.        
    3607.         // custom interpolators pre packing
    3608.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    3609.        
    3610.         struct Attributes
    3611.         {
    3612.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3613.              float3 positionOS : POSITION;
    3614.             #endif
    3615.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3616.              float3 normalOS : NORMAL;
    3617.             #endif
    3618.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3619.              float4 tangentOS : TANGENT;
    3620.             #endif
    3621.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3622.              float4 uv0 : TEXCOORD0;
    3623.             #endif
    3624.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3625.              float4 uv1 : TEXCOORD1;
    3626.             #endif
    3627.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3628.              float4 uv2 : TEXCOORD2;
    3629.             #endif
    3630.             #if UNITY_ANY_INSTANCING_ENABLED
    3631.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3632.              uint instanceID : INSTANCEID_SEMANTIC;
    3633.             #endif
    3634.             #endif
    3635.         };
    3636.         struct Varyings
    3637.         {
    3638.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3639.              float4 positionCS : SV_POSITION;
    3640.             #endif
    3641.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3642.              float4 texCoord0;
    3643.             #endif
    3644.             #if UNITY_ANY_INSTANCING_ENABLED
    3645.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3646.              uint instanceID : CUSTOM_INSTANCE_ID;
    3647.             #endif
    3648.             #endif
    3649.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3650.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3651.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    3652.             #endif
    3653.             #endif
    3654.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3655.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3656.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    3657.             #endif
    3658.             #endif
    3659.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3660.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3661.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    3662.             #endif
    3663.             #endif
    3664.         };
    3665.         struct SurfaceDescriptionInputs
    3666.         {
    3667.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3668.              float4 uv0;
    3669.             #endif
    3670.         };
    3671.         struct VertexDescriptionInputs
    3672.         {
    3673.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3674.              float3 ObjectSpaceNormal;
    3675.             #endif
    3676.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3677.              float3 WorldSpaceNormal;
    3678.             #endif
    3679.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3680.              float3 ObjectSpaceTangent;
    3681.             #endif
    3682.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3683.              float3 WorldSpaceTangent;
    3684.             #endif
    3685.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3686.              float3 ObjectSpaceBiTangent;
    3687.             #endif
    3688.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3689.              float3 WorldSpaceBiTangent;
    3690.             #endif
    3691.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3692.              float3 ObjectSpacePosition;
    3693.             #endif
    3694.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3695.              float3 WorldSpacePosition;
    3696.             #endif
    3697.         };
    3698.         struct PackedVaryings
    3699.         {
    3700.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3701.              float4 positionCS : SV_POSITION;
    3702.             #endif
    3703.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3704.              float4 interp0 : INTERP0;
    3705.             #endif
    3706.             #if UNITY_ANY_INSTANCING_ENABLED
    3707.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3708.              uint instanceID : CUSTOM_INSTANCE_ID;
    3709.             #endif
    3710.             #endif
    3711.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3712.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3713.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    3714.             #endif
    3715.             #endif
    3716.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3717.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3718.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    3719.             #endif
    3720.             #endif
    3721.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3722.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3723.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    3724.             #endif
    3725.             #endif
    3726.         };
    3727.        
    3728.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3729.         PackedVaryings PackVaryings (Varyings input)
    3730.         {
    3731.             PackedVaryings output;
    3732.             ZERO_INITIALIZE(PackedVaryings, output);
    3733.             output.positionCS = input.positionCS;
    3734.             output.interp0.xyzw =  input.texCoord0;
    3735.             #if UNITY_ANY_INSTANCING_ENABLED
    3736.             output.instanceID = input.instanceID;
    3737.             #endif
    3738.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3739.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    3740.             #endif
    3741.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3742.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    3743.             #endif
    3744.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3745.             output.cullFace = input.cullFace;
    3746.             #endif
    3747.             return output;
    3748.         }
    3749.        
    3750.         Varyings UnpackVaryings (PackedVaryings input)
    3751.         {
    3752.             Varyings output;
    3753.             output.positionCS = input.positionCS;
    3754.             output.texCoord0 = input.interp0.xyzw;
    3755.             #if UNITY_ANY_INSTANCING_ENABLED
    3756.             output.instanceID = input.instanceID;
    3757.             #endif
    3758.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    3759.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    3760.             #endif
    3761.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    3762.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    3763.             #endif
    3764.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    3765.             output.cullFace = input.cullFace;
    3766.             #endif
    3767.             return output;
    3768.         }
    3769.         #endif
    3770.        
    3771.         // --------------------------------------------------
    3772.         // Graph
    3773.        
    3774.         // Graph Properties
    3775.         CBUFFER_START(UnityPerMaterial)
    3776.         float3 _referencePosition;
    3777.         float _curvature;
    3778.         float4 _BaseMap_TexelSize;
    3779.         float4 _BaseColor;
    3780.         float _Smoothness;
    3781.         CBUFFER_END
    3782.        
    3783.         // Object and Global properties
    3784.         SAMPLER(SamplerState_Linear_Repeat);
    3785.         TEXTURE2D(_BaseMap);
    3786.         SAMPLER(sampler_BaseMap);
    3787.        
    3788.         // -- Property used by ScenePickingPass
    3789.         #ifdef SCENEPICKINGPASS
    3790.         float4 _SelectionID;
    3791.         #endif
    3792.        
    3793.         // -- Properties used by SceneSelectionPass
    3794.         #ifdef SCENESELECTIONPASS
    3795.         int _ObjectId;
    3796.         int _PassValue;
    3797.         #endif
    3798.        
    3799.         // Graph Includes
    3800.         // GraphIncludes: <None>
    3801.        
    3802.         // Graph Functions
    3803.        
    3804.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    3805.         {
    3806.             Out = A - B;
    3807.         }
    3808.        
    3809.         void Unity_Multiply_float_float(float A, float B, out float Out)
    3810.         {
    3811.             Out = A * B;
    3812.         }
    3813.        
    3814.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    3815.         {
    3816.             Rotation = radians(Rotation);
    3817.        
    3818.             float s = sin(Rotation);
    3819.             float c = cos(Rotation);
    3820.             float one_minus_c = 1.0 - c;
    3821.        
    3822.             Axis = normalize(Axis);
    3823.        
    3824.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    3825.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    3826.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    3827.                                     };
    3828.        
    3829.             Out = mul(rot_mat,  In);
    3830.         }
    3831.        
    3832.         void Unity_Blend_Overlay_float4(float4 Base, float4 Blend, out float4 Out, float Opacity)
    3833.         {
    3834.             float4 result1 = 1.0 - 2.0 * (1.0 - Base) * (1.0 - Blend);
    3835.             float4 result2 = 2.0 * Base * Blend;
    3836.             float4 zeroOrOne = step(Base, 0.5);
    3837.             Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
    3838.             Out = lerp(Base, Out, Opacity);
    3839.         }
    3840.        
    3841.         // Custom interpolators pre vertex
    3842.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    3843.        
    3844.         // Graph Vertex
    3845.         struct VertexDescription
    3846.         {
    3847.             float3 Position;
    3848.             float3 Normal;
    3849.             float3 Tangent;
    3850.         };
    3851.        
    3852.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    3853.         {
    3854.             VertexDescription description = (VertexDescription)0;
    3855.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3856.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    3857.             #endif
    3858.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3859.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    3860.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    3861.             #endif
    3862.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3863.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    3864.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    3865.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    3866.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    3867.             #endif
    3868.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3869.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    3870.             #endif
    3871.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3872.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    3873.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    3874.             #endif
    3875.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3876.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    3877.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    3878.             #endif
    3879.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3880.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    3881.             #endif
    3882.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3883.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    3884.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    3885.             #endif
    3886.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3887.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    3888.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    3889.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    3890.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    3891.             #endif
    3892.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3893.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    3894.             #endif
    3895.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3896.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    3897.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    3898.             #endif
    3899.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3900.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    3901.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    3902.             #endif
    3903.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3904.             #if defined(_AXIS)
    3905.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    3906.             #else
    3907.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    3908.             #endif
    3909.             #endif
    3910.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3911.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    3912.             #endif
    3913.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3914.             #if defined(_ENABLED)
    3915.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    3916.             #else
    3917.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    3918.             #endif
    3919.             #endif
    3920.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    3921.             description.Normal = IN.ObjectSpaceNormal;
    3922.             description.Tangent = IN.ObjectSpaceTangent;
    3923.             return description;
    3924.         }
    3925.        
    3926.         // Custom interpolators, pre surface
    3927.         #ifdef FEATURES_GRAPH_VERTEX
    3928.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    3929.         {
    3930.         return output;
    3931.         }
    3932.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    3933.         #endif
    3934.        
    3935.         // Graph Pixel
    3936.         struct SurfaceDescription
    3937.         {
    3938.             float3 BaseColor;
    3939.             float3 Emission;
    3940.         };
    3941.        
    3942.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    3943.         {
    3944.             SurfaceDescription surface = (SurfaceDescription)0;
    3945.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3946.             UnityTexture2D _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0 = UnityBuildTexture2DStructNoScale(_BaseMap);
    3947.             #endif
    3948.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3949.             float4 _UV_1038f1c745e44aa882dd6d672f52eb92_Out_0 = IN.uv0;
    3950.             #endif
    3951.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3952.             float4 _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0 = SAMPLE_TEXTURE2D(_Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.tex, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.samplerstate, _Property_ebcbf65310d8405d8b17e4ad981ac5ff_Out_0.GetTransformedUV((_UV_1038f1c745e44aa882dd6d672f52eb92_Out_0.xy)));
    3953.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_R_4 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.r;
    3954.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_G_5 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.g;
    3955.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_B_6 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.b;
    3956.             float _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_A_7 = _SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0.a;
    3957.             #endif
    3958.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3959.             float4 _Property_53b1730c224f4a0b869af017723d52c3_Out_0 = _BaseColor;
    3960.             #endif
    3961.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3962.             float4 _Blend_f8d31fdc58974777a0eec571ab662204_Out_2;
    3963.             Unity_Blend_Overlay_float4(_SampleTexture2D_1fde3704fa344af39707a5f09e28b82a_RGBA_0, _Property_53b1730c224f4a0b869af017723d52c3_Out_0, _Blend_f8d31fdc58974777a0eec571ab662204_Out_2, 1);
    3964.             #endif
    3965.             surface.BaseColor = (_Blend_f8d31fdc58974777a0eec571ab662204_Out_2.xyz);
    3966.             surface.Emission = float3(0, 0, 0);
    3967.             return surface;
    3968.         }
    3969.        
    3970.         // --------------------------------------------------
    3971.         // Build Graph Inputs
    3972.        
    3973.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    3974.         {
    3975.             VertexDescriptionInputs output;
    3976.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    3977.        
    3978.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3979.         output.ObjectSpaceNormal =                          input.normalOS;
    3980.         #endif
    3981.        
    3982.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3983.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    3984.         #endif
    3985.        
    3986.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3987.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    3988.         #endif
    3989.        
    3990.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3991.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    3992.         #endif
    3993.        
    3994.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3995.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    3996.         #endif
    3997.        
    3998.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    3999.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    4000.         #endif
    4001.        
    4002.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4003.         output.ObjectSpacePosition =                        input.positionOS;
    4004.         #endif
    4005.        
    4006.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4007.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    4008.         #endif
    4009.        
    4010.        
    4011.             return output;
    4012.         }
    4013.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    4014.         {
    4015.             SurfaceDescriptionInputs output;
    4016.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    4017.        
    4018.            
    4019.        
    4020.        
    4021.        
    4022.        
    4023.        
    4024.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4025.         output.uv0 = input.texCoord0;
    4026.         #endif
    4027.        
    4028.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4029.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    4030.         #else
    4031.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    4032.         #endif
    4033.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    4034.        
    4035.                 return output;
    4036.         }
    4037.        
    4038.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    4039.         {
    4040.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4041.         result.vertex     = float4(attributes.positionOS, 1);
    4042.         #endif
    4043.        
    4044.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4045.         result.tangent    = attributes.tangentOS;
    4046.         #endif
    4047.        
    4048.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4049.         result.normal     = attributes.normalOS;
    4050.         #endif
    4051.        
    4052.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4053.         result.texcoord   = attributes.uv0;
    4054.         #endif
    4055.        
    4056.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4057.         result.texcoord1  = attributes.uv1;
    4058.         #endif
    4059.        
    4060.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4061.         result.texcoord2  = attributes.uv2;
    4062.         #endif
    4063.        
    4064.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4065.         result.vertex     = float4(vertexDescription.Position, 1);
    4066.         #endif
    4067.        
    4068.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4069.         result.normal     = vertexDescription.Normal;
    4070.         #endif
    4071.        
    4072.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4073.         result.tangent    = float4(vertexDescription.Tangent, 0);
    4074.         #endif
    4075.        
    4076.             #if UNITY_ANY_INSTANCING_ENABLED
    4077.             #endif
    4078.         }
    4079.        
    4080.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    4081.         {
    4082.             result.pos = varyings.positionCS;
    4083.             // World Tangent isn't an available input on v2f_surf
    4084.        
    4085.        
    4086.             #if UNITY_ANY_INSTANCING_ENABLED
    4087.             #endif
    4088.             #if UNITY_SHOULD_SAMPLE_SH
    4089.             #endif
    4090.             #if defined(LIGHTMAP_ON)
    4091.             #endif
    4092.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    4093.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    4094.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    4095.             #endif
    4096.        
    4097.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    4098.         }
    4099.        
    4100.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    4101.         {
    4102.             result.positionCS = surfVertex.pos;
    4103.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    4104.             // World Tangent isn't an available input on v2f_surf
    4105.        
    4106.             #if UNITY_ANY_INSTANCING_ENABLED
    4107.             #endif
    4108.             #if UNITY_SHOULD_SAMPLE_SH
    4109.             #endif
    4110.             #if defined(LIGHTMAP_ON)
    4111.             #endif
    4112.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    4113.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    4114.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    4115.             #endif
    4116.        
    4117.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    4118.         }
    4119.        
    4120.         // --------------------------------------------------
    4121.         // Main
    4122.        
    4123.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    4124.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    4125.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LightingMetaPass.hlsl"
    4126.        
    4127.         ENDHLSL
    4128.         }
    4129.         Pass
    4130.         {
    4131.             Name "SceneSelectionPass"
    4132.             Tags
    4133.             {
    4134.                 "LightMode" = "SceneSelectionPass"
    4135.             }
    4136.        
    4137.         // Render State
    4138.         Cull Off
    4139.        
    4140.         // Debug
    4141.         // <None>
    4142.        
    4143.         // --------------------------------------------------
    4144.         // Pass
    4145.        
    4146.         HLSLPROGRAM
    4147.        
    4148.         // Pragmas
    4149.         #pragma target 3.0
    4150.         #pragma multi_compile_instancing
    4151.         #pragma vertex vert
    4152.         #pragma fragment frag
    4153.        
    4154.         // DotsInstancingOptions: <None>
    4155.         // HybridV1InjectedBuiltinProperties: <None>
    4156.        
    4157.         // Keywords
    4158.         // PassKeywords: <None>
    4159.         #pragma multi_compile _ _ENABLED
    4160.         #pragma multi_compile_local _ _AXIS
    4161.        
    4162.         #if defined(_ENABLED) && defined(_AXIS)
    4163.             #define KEYWORD_PERMUTATION_0
    4164.         #elif defined(_ENABLED)
    4165.             #define KEYWORD_PERMUTATION_1
    4166.         #elif defined(_AXIS)
    4167.             #define KEYWORD_PERMUTATION_2
    4168.         #else
    4169.             #define KEYWORD_PERMUTATION_3
    4170.         #endif
    4171.        
    4172.        
    4173.         // Defines
    4174.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4175.         #define _NORMALMAP 1
    4176.         #endif
    4177.        
    4178.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4179.         #define _NORMAL_DROPOFF_TS 1
    4180.         #endif
    4181.        
    4182.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4183.         #define ATTRIBUTES_NEED_NORMAL
    4184.         #endif
    4185.        
    4186.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4187.         #define ATTRIBUTES_NEED_TANGENT
    4188.         #endif
    4189.        
    4190.         #define FEATURES_GRAPH_VERTEX
    4191.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    4192.         #define SHADERPASS SceneSelectionPass
    4193.         #define BUILTIN_TARGET_API 1
    4194.         #define SCENESELECTIONPASS 1
    4195.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    4196.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    4197.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    4198.         #endif
    4199.         #ifdef _BUILTIN_ALPHATEST_ON
    4200.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    4201.         #endif
    4202.         #ifdef _BUILTIN_AlphaClip
    4203.         #define _AlphaClip _BUILTIN_AlphaClip
    4204.         #endif
    4205.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    4206.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    4207.         #endif
    4208.        
    4209.        
    4210.         // custom interpolator pre-include
    4211.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    4212.        
    4213.         // Includes
    4214.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    4215.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    4216.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    4217.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    4218.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    4219.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    4220.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    4221.        
    4222.         // --------------------------------------------------
    4223.         // Structs and Packing
    4224.        
    4225.         // custom interpolators pre packing
    4226.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    4227.        
    4228.         struct Attributes
    4229.         {
    4230.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4231.              float3 positionOS : POSITION;
    4232.             #endif
    4233.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4234.              float3 normalOS : NORMAL;
    4235.             #endif
    4236.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4237.              float4 tangentOS : TANGENT;
    4238.             #endif
    4239.             #if UNITY_ANY_INSTANCING_ENABLED
    4240.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4241.              uint instanceID : INSTANCEID_SEMANTIC;
    4242.             #endif
    4243.             #endif
    4244.         };
    4245.         struct Varyings
    4246.         {
    4247.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4248.              float4 positionCS : SV_POSITION;
    4249.             #endif
    4250.             #if UNITY_ANY_INSTANCING_ENABLED
    4251.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4252.              uint instanceID : CUSTOM_INSTANCE_ID;
    4253.             #endif
    4254.             #endif
    4255.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4256.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4257.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    4258.             #endif
    4259.             #endif
    4260.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4261.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4262.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    4263.             #endif
    4264.             #endif
    4265.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4266.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4267.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    4268.             #endif
    4269.             #endif
    4270.         };
    4271.         struct SurfaceDescriptionInputs
    4272.         {
    4273.         };
    4274.         struct VertexDescriptionInputs
    4275.         {
    4276.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4277.              float3 ObjectSpaceNormal;
    4278.             #endif
    4279.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4280.              float3 WorldSpaceNormal;
    4281.             #endif
    4282.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4283.              float3 ObjectSpaceTangent;
    4284.             #endif
    4285.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4286.              float3 WorldSpaceTangent;
    4287.             #endif
    4288.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4289.              float3 ObjectSpaceBiTangent;
    4290.             #endif
    4291.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4292.              float3 WorldSpaceBiTangent;
    4293.             #endif
    4294.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4295.              float3 ObjectSpacePosition;
    4296.             #endif
    4297.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4298.              float3 WorldSpacePosition;
    4299.             #endif
    4300.         };
    4301.         struct PackedVaryings
    4302.         {
    4303.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4304.              float4 positionCS : SV_POSITION;
    4305.             #endif
    4306.             #if UNITY_ANY_INSTANCING_ENABLED
    4307.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4308.              uint instanceID : CUSTOM_INSTANCE_ID;
    4309.             #endif
    4310.             #endif
    4311.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4312.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4313.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    4314.             #endif
    4315.             #endif
    4316.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4317.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4318.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    4319.             #endif
    4320.             #endif
    4321.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4322.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4323.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    4324.             #endif
    4325.             #endif
    4326.         };
    4327.        
    4328.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4329.         PackedVaryings PackVaryings (Varyings input)
    4330.         {
    4331.             PackedVaryings output;
    4332.             ZERO_INITIALIZE(PackedVaryings, output);
    4333.             output.positionCS = input.positionCS;
    4334.             #if UNITY_ANY_INSTANCING_ENABLED
    4335.             output.instanceID = input.instanceID;
    4336.             #endif
    4337.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4338.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    4339.             #endif
    4340.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4341.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    4342.             #endif
    4343.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4344.             output.cullFace = input.cullFace;
    4345.             #endif
    4346.             return output;
    4347.         }
    4348.        
    4349.         Varyings UnpackVaryings (PackedVaryings input)
    4350.         {
    4351.             Varyings output;
    4352.             output.positionCS = input.positionCS;
    4353.             #if UNITY_ANY_INSTANCING_ENABLED
    4354.             output.instanceID = input.instanceID;
    4355.             #endif
    4356.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4357.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    4358.             #endif
    4359.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4360.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    4361.             #endif
    4362.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4363.             output.cullFace = input.cullFace;
    4364.             #endif
    4365.             return output;
    4366.         }
    4367.         #endif
    4368.        
    4369.         // --------------------------------------------------
    4370.         // Graph
    4371.        
    4372.         // Graph Properties
    4373.         CBUFFER_START(UnityPerMaterial)
    4374.         float3 _referencePosition;
    4375.         float _curvature;
    4376.         float4 _BaseMap_TexelSize;
    4377.         float4 _BaseColor;
    4378.         float _Smoothness;
    4379.         CBUFFER_END
    4380.        
    4381.         // Object and Global properties
    4382.         SAMPLER(SamplerState_Linear_Repeat);
    4383.         TEXTURE2D(_BaseMap);
    4384.         SAMPLER(sampler_BaseMap);
    4385.        
    4386.         // -- Property used by ScenePickingPass
    4387.         #ifdef SCENEPICKINGPASS
    4388.         float4 _SelectionID;
    4389.         #endif
    4390.        
    4391.         // -- Properties used by SceneSelectionPass
    4392.         #ifdef SCENESELECTIONPASS
    4393.         int _ObjectId;
    4394.         int _PassValue;
    4395.         #endif
    4396.        
    4397.         // Graph Includes
    4398.         // GraphIncludes: <None>
    4399.        
    4400.         // Graph Functions
    4401.        
    4402.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    4403.         {
    4404.             Out = A - B;
    4405.         }
    4406.        
    4407.         void Unity_Multiply_float_float(float A, float B, out float Out)
    4408.         {
    4409.             Out = A * B;
    4410.         }
    4411.        
    4412.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    4413.         {
    4414.             Rotation = radians(Rotation);
    4415.        
    4416.             float s = sin(Rotation);
    4417.             float c = cos(Rotation);
    4418.             float one_minus_c = 1.0 - c;
    4419.        
    4420.             Axis = normalize(Axis);
    4421.        
    4422.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    4423.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    4424.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    4425.                                     };
    4426.        
    4427.             Out = mul(rot_mat,  In);
    4428.         }
    4429.        
    4430.         // Custom interpolators pre vertex
    4431.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    4432.        
    4433.         // Graph Vertex
    4434.         struct VertexDescription
    4435.         {
    4436.             float3 Position;
    4437.             float3 Normal;
    4438.             float3 Tangent;
    4439.         };
    4440.        
    4441.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    4442.         {
    4443.             VertexDescription description = (VertexDescription)0;
    4444.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4445.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    4446.             #endif
    4447.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4448.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    4449.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    4450.             #endif
    4451.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4452.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    4453.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    4454.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    4455.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    4456.             #endif
    4457.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4458.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    4459.             #endif
    4460.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4461.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    4462.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    4463.             #endif
    4464.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4465.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    4466.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    4467.             #endif
    4468.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4469.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    4470.             #endif
    4471.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4472.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    4473.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    4474.             #endif
    4475.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4476.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    4477.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    4478.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    4479.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    4480.             #endif
    4481.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4482.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    4483.             #endif
    4484.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4485.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    4486.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    4487.             #endif
    4488.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4489.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    4490.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    4491.             #endif
    4492.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4493.             #if defined(_AXIS)
    4494.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    4495.             #else
    4496.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    4497.             #endif
    4498.             #endif
    4499.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4500.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    4501.             #endif
    4502.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4503.             #if defined(_ENABLED)
    4504.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    4505.             #else
    4506.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    4507.             #endif
    4508.             #endif
    4509.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    4510.             description.Normal = IN.ObjectSpaceNormal;
    4511.             description.Tangent = IN.ObjectSpaceTangent;
    4512.             return description;
    4513.         }
    4514.        
    4515.         // Custom interpolators, pre surface
    4516.         #ifdef FEATURES_GRAPH_VERTEX
    4517.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    4518.         {
    4519.         return output;
    4520.         }
    4521.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    4522.         #endif
    4523.        
    4524.         // Graph Pixel
    4525.         struct SurfaceDescription
    4526.         {
    4527.         };
    4528.        
    4529.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    4530.         {
    4531.             SurfaceDescription surface = (SurfaceDescription)0;
    4532.             return surface;
    4533.         }
    4534.        
    4535.         // --------------------------------------------------
    4536.         // Build Graph Inputs
    4537.        
    4538.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    4539.         {
    4540.             VertexDescriptionInputs output;
    4541.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    4542.        
    4543.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4544.         output.ObjectSpaceNormal =                          input.normalOS;
    4545.         #endif
    4546.        
    4547.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4548.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    4549.         #endif
    4550.        
    4551.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4552.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    4553.         #endif
    4554.        
    4555.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4556.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    4557.         #endif
    4558.        
    4559.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4560.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    4561.         #endif
    4562.        
    4563.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4564.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    4565.         #endif
    4566.        
    4567.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4568.         output.ObjectSpacePosition =                        input.positionOS;
    4569.         #endif
    4570.        
    4571.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4572.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    4573.         #endif
    4574.        
    4575.        
    4576.             return output;
    4577.         }
    4578.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    4579.         {
    4580.             SurfaceDescriptionInputs output;
    4581.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    4582.        
    4583.            
    4584.        
    4585.        
    4586.        
    4587.        
    4588.        
    4589.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4590.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    4591.         #else
    4592.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    4593.         #endif
    4594.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    4595.        
    4596.                 return output;
    4597.         }
    4598.        
    4599.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    4600.         {
    4601.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4602.         result.vertex     = float4(attributes.positionOS, 1);
    4603.         #endif
    4604.        
    4605.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4606.         result.tangent    = attributes.tangentOS;
    4607.         #endif
    4608.        
    4609.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4610.         result.normal     = attributes.normalOS;
    4611.         #endif
    4612.        
    4613.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4614.         result.vertex     = float4(vertexDescription.Position, 1);
    4615.         #endif
    4616.        
    4617.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4618.         result.normal     = vertexDescription.Normal;
    4619.         #endif
    4620.        
    4621.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4622.         result.tangent    = float4(vertexDescription.Tangent, 0);
    4623.         #endif
    4624.        
    4625.             #if UNITY_ANY_INSTANCING_ENABLED
    4626.             #endif
    4627.         }
    4628.        
    4629.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    4630.         {
    4631.             result.pos = varyings.positionCS;
    4632.             // World Tangent isn't an available input on v2f_surf
    4633.        
    4634.        
    4635.             #if UNITY_ANY_INSTANCING_ENABLED
    4636.             #endif
    4637.             #if UNITY_SHOULD_SAMPLE_SH
    4638.             #endif
    4639.             #if defined(LIGHTMAP_ON)
    4640.             #endif
    4641.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    4642.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    4643.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    4644.             #endif
    4645.        
    4646.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    4647.         }
    4648.        
    4649.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    4650.         {
    4651.             result.positionCS = surfVertex.pos;
    4652.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    4653.             // World Tangent isn't an available input on v2f_surf
    4654.        
    4655.             #if UNITY_ANY_INSTANCING_ENABLED
    4656.             #endif
    4657.             #if UNITY_SHOULD_SAMPLE_SH
    4658.             #endif
    4659.             #if defined(LIGHTMAP_ON)
    4660.             #endif
    4661.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    4662.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    4663.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    4664.             #endif
    4665.        
    4666.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    4667.         }
    4668.        
    4669.         // --------------------------------------------------
    4670.         // Main
    4671.        
    4672.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    4673.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    4674.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl"
    4675.        
    4676.         ENDHLSL
    4677.         }
    4678.         Pass
    4679.         {
    4680.             Name "ScenePickingPass"
    4681.             Tags
    4682.             {
    4683.                 "LightMode" = "Picking"
    4684.             }
    4685.        
    4686.         // Render State
    4687.         Cull Back
    4688.        
    4689.         // Debug
    4690.         // <None>
    4691.        
    4692.         // --------------------------------------------------
    4693.         // Pass
    4694.        
    4695.         HLSLPROGRAM
    4696.        
    4697.         // Pragmas
    4698.         #pragma target 3.0
    4699.         #pragma multi_compile_instancing
    4700.         #pragma vertex vert
    4701.         #pragma fragment frag
    4702.        
    4703.         // DotsInstancingOptions: <None>
    4704.         // HybridV1InjectedBuiltinProperties: <None>
    4705.        
    4706.         // Keywords
    4707.         // PassKeywords: <None>
    4708.         #pragma multi_compile _ _ENABLED
    4709.         #pragma multi_compile_local _ _AXIS
    4710.        
    4711.         #if defined(_ENABLED) && defined(_AXIS)
    4712.             #define KEYWORD_PERMUTATION_0
    4713.         #elif defined(_ENABLED)
    4714.             #define KEYWORD_PERMUTATION_1
    4715.         #elif defined(_AXIS)
    4716.             #define KEYWORD_PERMUTATION_2
    4717.         #else
    4718.             #define KEYWORD_PERMUTATION_3
    4719.         #endif
    4720.        
    4721.        
    4722.         // Defines
    4723.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4724.         #define _NORMALMAP 1
    4725.         #endif
    4726.        
    4727.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4728.         #define _NORMAL_DROPOFF_TS 1
    4729.         #endif
    4730.        
    4731.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4732.         #define ATTRIBUTES_NEED_NORMAL
    4733.         #endif
    4734.        
    4735.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4736.         #define ATTRIBUTES_NEED_TANGENT
    4737.         #endif
    4738.        
    4739.         #define FEATURES_GRAPH_VERTEX
    4740.         /* WARNING: $splice Could not find named fragment 'PassInstancing' */
    4741.         #define SHADERPASS ScenePickingPass
    4742.         #define BUILTIN_TARGET_API 1
    4743.         #define SCENEPICKINGPASS 1
    4744.         /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */
    4745.         #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT
    4746.         #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT
    4747.         #endif
    4748.         #ifdef _BUILTIN_ALPHATEST_ON
    4749.         #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON
    4750.         #endif
    4751.         #ifdef _BUILTIN_AlphaClip
    4752.         #define _AlphaClip _BUILTIN_AlphaClip
    4753.         #endif
    4754.         #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON
    4755.         #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON
    4756.         #endif
    4757.        
    4758.        
    4759.         // custom interpolator pre-include
    4760.         /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
    4761.        
    4762.         // Includes
    4763.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl"
    4764.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
    4765.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl"
    4766.         #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
    4767.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl"
    4768.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl"
    4769.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl"
    4770.        
    4771.         // --------------------------------------------------
    4772.         // Structs and Packing
    4773.        
    4774.         // custom interpolators pre packing
    4775.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
    4776.        
    4777.         struct Attributes
    4778.         {
    4779.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4780.              float3 positionOS : POSITION;
    4781.             #endif
    4782.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4783.              float3 normalOS : NORMAL;
    4784.             #endif
    4785.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4786.              float4 tangentOS : TANGENT;
    4787.             #endif
    4788.             #if UNITY_ANY_INSTANCING_ENABLED
    4789.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4790.              uint instanceID : INSTANCEID_SEMANTIC;
    4791.             #endif
    4792.             #endif
    4793.         };
    4794.         struct Varyings
    4795.         {
    4796.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4797.              float4 positionCS : SV_POSITION;
    4798.             #endif
    4799.             #if UNITY_ANY_INSTANCING_ENABLED
    4800.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4801.              uint instanceID : CUSTOM_INSTANCE_ID;
    4802.             #endif
    4803.             #endif
    4804.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4805.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4806.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    4807.             #endif
    4808.             #endif
    4809.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4810.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4811.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    4812.             #endif
    4813.             #endif
    4814.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4815.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4816.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    4817.             #endif
    4818.             #endif
    4819.         };
    4820.         struct SurfaceDescriptionInputs
    4821.         {
    4822.         };
    4823.         struct VertexDescriptionInputs
    4824.         {
    4825.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4826.              float3 ObjectSpaceNormal;
    4827.             #endif
    4828.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4829.              float3 WorldSpaceNormal;
    4830.             #endif
    4831.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4832.              float3 ObjectSpaceTangent;
    4833.             #endif
    4834.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4835.              float3 WorldSpaceTangent;
    4836.             #endif
    4837.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4838.              float3 ObjectSpaceBiTangent;
    4839.             #endif
    4840.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4841.              float3 WorldSpaceBiTangent;
    4842.             #endif
    4843.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4844.              float3 ObjectSpacePosition;
    4845.             #endif
    4846.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4847.              float3 WorldSpacePosition;
    4848.             #endif
    4849.         };
    4850.         struct PackedVaryings
    4851.         {
    4852.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4853.              float4 positionCS : SV_POSITION;
    4854.             #endif
    4855.             #if UNITY_ANY_INSTANCING_ENABLED
    4856.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4857.              uint instanceID : CUSTOM_INSTANCE_ID;
    4858.             #endif
    4859.             #endif
    4860.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4861.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4862.              uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
    4863.             #endif
    4864.             #endif
    4865.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4866.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4867.              uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
    4868.             #endif
    4869.             #endif
    4870.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4871.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4872.              FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
    4873.             #endif
    4874.             #endif
    4875.         };
    4876.        
    4877.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4878.         PackedVaryings PackVaryings (Varyings input)
    4879.         {
    4880.             PackedVaryings output;
    4881.             ZERO_INITIALIZE(PackedVaryings, output);
    4882.             output.positionCS = input.positionCS;
    4883.             #if UNITY_ANY_INSTANCING_ENABLED
    4884.             output.instanceID = input.instanceID;
    4885.             #endif
    4886.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4887.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    4888.             #endif
    4889.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4890.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    4891.             #endif
    4892.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4893.             output.cullFace = input.cullFace;
    4894.             #endif
    4895.             return output;
    4896.         }
    4897.        
    4898.         Varyings UnpackVaryings (PackedVaryings input)
    4899.         {
    4900.             Varyings output;
    4901.             output.positionCS = input.positionCS;
    4902.             #if UNITY_ANY_INSTANCING_ENABLED
    4903.             output.instanceID = input.instanceID;
    4904.             #endif
    4905.             #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
    4906.             output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
    4907.             #endif
    4908.             #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
    4909.             output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
    4910.             #endif
    4911.             #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    4912.             output.cullFace = input.cullFace;
    4913.             #endif
    4914.             return output;
    4915.         }
    4916.         #endif
    4917.        
    4918.         // --------------------------------------------------
    4919.         // Graph
    4920.        
    4921.         // Graph Properties
    4922.         CBUFFER_START(UnityPerMaterial)
    4923.         float3 _referencePosition;
    4924.         float _curvature;
    4925.         float4 _BaseMap_TexelSize;
    4926.         float4 _BaseColor;
    4927.         float _Smoothness;
    4928.         CBUFFER_END
    4929.        
    4930.         // Object and Global properties
    4931.         SAMPLER(SamplerState_Linear_Repeat);
    4932.         TEXTURE2D(_BaseMap);
    4933.         SAMPLER(sampler_BaseMap);
    4934.        
    4935.         // -- Property used by ScenePickingPass
    4936.         #ifdef SCENEPICKINGPASS
    4937.         float4 _SelectionID;
    4938.         #endif
    4939.        
    4940.         // -- Properties used by SceneSelectionPass
    4941.         #ifdef SCENESELECTIONPASS
    4942.         int _ObjectId;
    4943.         int _PassValue;
    4944.         #endif
    4945.        
    4946.         // Graph Includes
    4947.         // GraphIncludes: <None>
    4948.        
    4949.         // Graph Functions
    4950.        
    4951.         void Unity_Subtract_float3(float3 A, float3 B, out float3 Out)
    4952.         {
    4953.             Out = A - B;
    4954.         }
    4955.        
    4956.         void Unity_Multiply_float_float(float A, float B, out float Out)
    4957.         {
    4958.             Out = A * B;
    4959.         }
    4960.        
    4961.         void Unity_Rotate_About_Axis_Degrees_float(float3 In, float3 Axis, float Rotation, out float3 Out)
    4962.         {
    4963.             Rotation = radians(Rotation);
    4964.        
    4965.             float s = sin(Rotation);
    4966.             float c = cos(Rotation);
    4967.             float one_minus_c = 1.0 - c;
    4968.        
    4969.             Axis = normalize(Axis);
    4970.        
    4971.             float3x3 rot_mat = { one_minus_c * Axis.x * Axis.x + c,            one_minus_c * Axis.x * Axis.y - Axis.z * s,     one_minus_c * Axis.z * Axis.x + Axis.y * s,
    4972.                                       one_minus_c * Axis.x * Axis.y + Axis.z * s,   one_minus_c * Axis.y * Axis.y + c,              one_minus_c * Axis.y * Axis.z - Axis.x * s,
    4973.                                       one_minus_c * Axis.z * Axis.x - Axis.y * s,   one_minus_c * Axis.y * Axis.z + Axis.x * s,     one_minus_c * Axis.z * Axis.z + c
    4974.                                     };
    4975.        
    4976.             Out = mul(rot_mat,  In);
    4977.         }
    4978.        
    4979.         // Custom interpolators pre vertex
    4980.         /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
    4981.        
    4982.         // Graph Vertex
    4983.         struct VertexDescription
    4984.         {
    4985.             float3 Position;
    4986.             float3 Normal;
    4987.             float3 Tangent;
    4988.         };
    4989.        
    4990.         VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
    4991.         {
    4992.             VertexDescription description = (VertexDescription)0;
    4993.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4994.             float3 _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0 = _referencePosition;
    4995.             #endif
    4996.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    4997.             float3 _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2;
    4998.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_25af76adacfd43f4b49a5751c8a7734c_Out_0, _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2);
    4999.             #endif
    5000.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5001.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[0];
    5002.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_G_2 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[1];
    5003.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_B_3 = _Subtract_f2514e1e98434a0ab96a21cda58e303c_Out_2[2];
    5004.             float _Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_A_4 = 0;
    5005.             #endif
    5006.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5007.             float _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0 = _curvature;
    5008.             #endif
    5009.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5010.             float _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2;
    5011.             Unity_Multiply_float_float(_Split_7b94f4c650ad4278aa7ae9bd0a6db2f6_R_1, _Property_d5a29f6cc7a1428abbf11d200b5883f9_Out_0, _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2);
    5012.             #endif
    5013.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5014.             float3 _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    5015.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (1, 0, 0), _Multiply_e5c46ce9a87c4f43b6936a0dd0151a1e_Out_2, _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3);
    5016.             #endif
    5017.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5018.             float3 _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0 = _referencePosition;
    5019.             #endif
    5020.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5021.             float3 _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2;
    5022.             Unity_Subtract_float3(IN.WorldSpacePosition, _Property_0d1516849e5f4ae5a52f875fe6b2653e_Out_0, _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2);
    5023.             #endif
    5024.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5025.             float _Split_240109745d5d4497bf69fd22d0bf747e_R_1 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[0];
    5026.             float _Split_240109745d5d4497bf69fd22d0bf747e_G_2 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[1];
    5027.             float _Split_240109745d5d4497bf69fd22d0bf747e_B_3 = _Subtract_674f3075b0e24a1a8cb46fd11ceace58_Out_2[2];
    5028.             float _Split_240109745d5d4497bf69fd22d0bf747e_A_4 = 0;
    5029.             #endif
    5030.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5031.             float _Property_1c3d175705b5426fa552b072ec6df325_Out_0 = _curvature;
    5032.             #endif
    5033.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5034.             float _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2;
    5035.             Unity_Multiply_float_float(_Split_240109745d5d4497bf69fd22d0bf747e_B_3, _Property_1c3d175705b5426fa552b072ec6df325_Out_0, _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2);
    5036.             #endif
    5037.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5038.             float3 _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    5039.             Unity_Rotate_About_Axis_Degrees_float(IN.WorldSpacePosition, float3 (0, 0, 1), _Multiply_e233738a47474d8992f81e8e4edca91a_Out_2, _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3);
    5040.             #endif
    5041.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5042.             #if defined(_AXIS)
    5043.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d441d0c406ca4a6aa38a2524bbfcb6d0_Out_3;
    5044.             #else
    5045.             float3 _axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0 = _RotateAboutAxis_d82420845e664e14800e9713eb360f1b_Out_3;
    5046.             #endif
    5047.             #endif
    5048.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5049.             float3 _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1 = TransformWorldToObject(_axis_a401a45dbe3c490c81e019ad57e9d09f_Out_0.xyz);
    5050.             #endif
    5051.             #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5052.             #if defined(_ENABLED)
    5053.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = _Transform_e4befb45b6c44a74b11d639a9f758a35_Out_1;
    5054.             #else
    5055.             float3 _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0 = IN.ObjectSpacePosition;
    5056.             #endif
    5057.             #endif
    5058.             description.Position = _enabled_dbc81f80ee5b41d5b36659abb8b6d96b_Out_0;
    5059.             description.Normal = IN.ObjectSpaceNormal;
    5060.             description.Tangent = IN.ObjectSpaceTangent;
    5061.             return description;
    5062.         }
    5063.        
    5064.         // Custom interpolators, pre surface
    5065.         #ifdef FEATURES_GRAPH_VERTEX
    5066.         Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
    5067.         {
    5068.         return output;
    5069.         }
    5070.         #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
    5071.         #endif
    5072.        
    5073.         // Graph Pixel
    5074.         struct SurfaceDescription
    5075.         {
    5076.         };
    5077.        
    5078.         SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
    5079.         {
    5080.             SurfaceDescription surface = (SurfaceDescription)0;
    5081.             return surface;
    5082.         }
    5083.        
    5084.         // --------------------------------------------------
    5085.         // Build Graph Inputs
    5086.        
    5087.         VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
    5088.         {
    5089.             VertexDescriptionInputs output;
    5090.             ZERO_INITIALIZE(VertexDescriptionInputs, output);
    5091.        
    5092.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5093.         output.ObjectSpaceNormal =                          input.normalOS;
    5094.         #endif
    5095.        
    5096.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5097.         output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
    5098.         #endif
    5099.        
    5100.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5101.         output.ObjectSpaceTangent =                         input.tangentOS.xyz;
    5102.         #endif
    5103.        
    5104.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5105.         output.WorldSpaceTangent =                          TransformObjectToWorldDir(input.tangentOS.xyz);
    5106.         #endif
    5107.        
    5108.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5109.         output.ObjectSpaceBiTangent =                       normalize(cross(input.normalOS, input.tangentOS.xyz) * (input.tangentOS.w > 0.0f ? 1.0f : -1.0f) * GetOddNegativeScale());
    5110.         #endif
    5111.        
    5112.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5113.         output.WorldSpaceBiTangent =                        TransformObjectToWorldDir(output.ObjectSpaceBiTangent);
    5114.         #endif
    5115.        
    5116.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5117.         output.ObjectSpacePosition =                        input.positionOS;
    5118.         #endif
    5119.        
    5120.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5121.         output.WorldSpacePosition =                         TransformObjectToWorld(input.positionOS);
    5122.         #endif
    5123.        
    5124.        
    5125.             return output;
    5126.         }
    5127.         SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
    5128.         {
    5129.             SurfaceDescriptionInputs output;
    5130.             ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
    5131.        
    5132.            
    5133.        
    5134.        
    5135.        
    5136.        
    5137.        
    5138.         #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
    5139.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
    5140.         #else
    5141.         #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    5142.         #endif
    5143.         #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
    5144.        
    5145.                 return output;
    5146.         }
    5147.        
    5148.         void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result)
    5149.         {
    5150.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5151.         result.vertex     = float4(attributes.positionOS, 1);
    5152.         #endif
    5153.        
    5154.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5155.         result.tangent    = attributes.tangentOS;
    5156.         #endif
    5157.        
    5158.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5159.         result.normal     = attributes.normalOS;
    5160.         #endif
    5161.        
    5162.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5163.         result.vertex     = float4(vertexDescription.Position, 1);
    5164.         #endif
    5165.        
    5166.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5167.         result.normal     = vertexDescription.Normal;
    5168.         #endif
    5169.        
    5170.         #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1) || defined(KEYWORD_PERMUTATION_2) || defined(KEYWORD_PERMUTATION_3)
    5171.         result.tangent    = float4(vertexDescription.Tangent, 0);
    5172.         #endif
    5173.        
    5174.             #if UNITY_ANY_INSTANCING_ENABLED
    5175.             #endif
    5176.         }
    5177.        
    5178.         void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result)
    5179.         {
    5180.             result.pos = varyings.positionCS;
    5181.             // World Tangent isn't an available input on v2f_surf
    5182.        
    5183.        
    5184.             #if UNITY_ANY_INSTANCING_ENABLED
    5185.             #endif
    5186.             #if UNITY_SHOULD_SAMPLE_SH
    5187.             #endif
    5188.             #if defined(LIGHTMAP_ON)
    5189.             #endif
    5190.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    5191.                 result.fogCoord = varyings.fogFactorAndVertexLight.x;
    5192.                 COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw);
    5193.             #endif
    5194.        
    5195.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result);
    5196.         }
    5197.        
    5198.         void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result)
    5199.         {
    5200.             result.positionCS = surfVertex.pos;
    5201.             // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP
    5202.             // World Tangent isn't an available input on v2f_surf
    5203.        
    5204.             #if UNITY_ANY_INSTANCING_ENABLED
    5205.             #endif
    5206.             #if UNITY_SHOULD_SAMPLE_SH
    5207.             #endif
    5208.             #if defined(LIGHTMAP_ON)
    5209.             #endif
    5210.             #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
    5211.                 result.fogFactorAndVertexLight.x = surfVertex.fogCoord;
    5212.                 COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex);
    5213.             #endif
    5214.        
    5215.             DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result);
    5216.         }
    5217.        
    5218.         // --------------------------------------------------
    5219.         // Main
    5220.        
    5221.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
    5222.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl"
    5223.         #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl"
    5224.        
    5225.         ENDHLSL
    5226.         }
    5227.     }
    5228.     CustomEditorForRenderPipeline "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInLitGUI" ""
    5229.     CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI"
    5230.     FallBack "Hidden/Shader Graph/FallbackError"
    5231. }
     
    borisenkioleg likes this.
  2. AliBuck

    AliBuck

    Joined:
    Aug 22, 2020
    Posts:
    30
  3. mccaber

    mccaber

    Joined:
    Sep 18, 2013
    Posts:
    20
    Ran into this, pretty well exact situation. To fix it, in project settings, turn off auto graphics api or set lightmapping to low. I'm not sure which fixed it and compile is 15 min so feel free to try either or.
     
  4. borisenkioleg

    borisenkioleg

    Joined:
    Feb 14, 2016
    Posts:
    2
    same problem

    I use Built-in RP, and Target platform "Android"